我可以创建 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

如果要实现这样的目标,则应查看其他答案,并传递Typeobject作为值的类型。

关于c# - 我可以使用通用 key 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24838190/

10-10 04:21