作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我可以创建一个字典,其中键的类型是通用的吗?
例如
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");
你当然可以传递类型明确性:
AddKey<BaseClass>(derriveredInstance);
那么,字典的类型是Dictionary<Type, object>
缺点:您不能将其他(不是基类或不同的)类的实例作为键传递:
AddKey<int>("some string"); // compile time error
如果你想实现这样的目标,你应该看看其他答案并通过 Type
或通过 object
作为值的类型。
关于c# - 我可以使用泛型作为 key 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24838190/
我是一名优秀的程序员,十分优秀!