问题
I want to create a List of KeyValuePairs in a managed C++ project. Here is the syntax I'm using
List<KeyValuePair<String^, String^>^>^ thing;
but I'm getting the following error:
error C3225: generic type argument for 'T' cannot be 'System::Collections::Generic::KeyValuePair ^', it must be a value type or a handle to a reference type
I basically want to do this (C#)
List<KeyValuePair<string, string>> thing;
but in managed C++. Oh and in .Net 2.0. Any takers?
回答1:
KeyValuePair does not itself need to be a handle. Duh.
Because it's a value type, not a reference type (i.e. struct
instead of class
in C#).
回答2:
Figured it out:
List<KeyValuePair<String^, String^>>^ thing;
KeyValuePair does not itself need to be a handle. Duh.
来源:https://stackoverflow.com/questions/341477/generic-generics-in-managed-c