我可以创建 key 类型为通用的字典吗?
例如
void addKey<T>( object value )
{
dic.add( T, value );
}
最佳答案
关于什么?
void AddKey<T>(T value)
{
dic.Add(typeof(T), value );
}
用法:
// the type of value is automatically detected based on usage
AddKey("sampleString");
当然,您可以通过类型exlicity:
AddKey<BaseClass>(derriveredInstance);
然后,字典的类型为
Dictionary<Type, object>
缺点:
您不能将其他(不是基类或不同类)类的实例作为键传递:
AddKey<int>("some string"); // compile time error
如果要实现这样的目标,则应查看其他答案,并传递
Type
或object
作为值的类型。关于c# - 我可以使用通用 key 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24838190/