我发现以下内容有点令人困惑....
Dictionary<Type, Object> _typeMap;
public void RegisterType<T>(Object o)
{
_typeMap.Add(typeof(T), o);
}
为什么typeof(T)
方法需要Add
? T
类型参数不是Type
吗?还有什么呢?
答案 0 :(得分:6)
T
是名称,typeof
用于检索相应的Type
对象。
泛型类型参数与任何其他类型名称完全相同,例如int
。你不能完全做typeMap.Add(int, 0);
。
答案 1 :(得分:1)
没有。 Add
此处需要 Type
类的实例。
通用类型参数是不 Type
类的实例。
答案 2 :(得分:0)
你需要输入typeof(T),因为T是类定义,类型是描述Type的对象,T和Object以及String等等。
typeof获取类定义的类型。
答案 3 :(得分:-1)
这个解决方案让我觉得有点像“opps”。我相信这段代码的结果总是试图将一个带有“Type”键的条目添加到字典中,因为你总是得到一个类型即可。相反,我认为你在寻找的是......
public void RegisterType<T>(Object o)
{
_typeMap.Add(T, o);
}
希望它有所帮助!