我可以创建一个字典,其中键的类型是通用的吗?
例如
void addKey<T>( object value )
{
dic.add( T, value );
}
Run Code Online (Sandbox Code Playgroud)
小智 3
关于什么?
void AddKey<T>(T value)
{
dic.Add(typeof(T), value );
}
Run Code Online (Sandbox Code Playgroud)
用法:
// the type of value is automatically detected based on usage
AddKey("sampleString");
Run Code Online (Sandbox Code Playgroud)
当然,您可以传递类型明确性:
AddKey<BaseClass>(derriveredInstance);
Run Code Online (Sandbox Code Playgroud)
那么,字典的类型是Dictionary<Type, object>
缺点: 您不能将其他(不是基类或不相同)类的实例作为键传递:
AddKey<int>("some string"); // compile time error
Run Code Online (Sandbox Code Playgroud)
如果您想实现这样的目标,您应该查看其他答案并作为值类型传递Type或传递。object
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |