C#类型转换问题

时间:2011-05-13 12:28:57

标签: c# .net

这是代码,

Type tbn =   Type.GetType(dii.DictionaryName);
DictionaryXmlInfo4BaseDictionary<tbn>.AddDictionaryXmlInfo((message));//error

4 个答案:

答案 0 :(得分:5)

你不能使用那样的泛型。泛型用于编译时已知的类型。

可以使用反射执行此操作 - 获取通用DictionaryXmlInfo4BaseDictionary类型定义,使用Type.MakeGenericType创建封闭类型,然后再次调用AddDictionaryXmlInfo反思...但它相对痛苦。

答案 1 :(得分:1)

您不能将泛型用于仅在运行时已知的类型。 DictionaryXmlInfo4BaseDictionary<T>类型是通用的,如果要使用它,则需要在编译时知道T参数。

答案 2 :(得分:0)

您不能将类型的实例用作通用参数。

泛型参数应该是基本实例中的任何一个,DictionaryXmlInfo4BaseDictionary<object>在最通用的情况下,但你可能想要在类层次结构之下的东西。

答案 3 :(得分:0)

你不能以这种方式使用Type,重构DictionaryXmlInfo4BaseDictionary所以它需要一个Type参数作为方法的一部分,例如。

DictionaryXmlInfo4BaseDictionary.AddDictionaryXmlInfo(tbn, message);