C#得到给定T的Generic类型
发布时间:2020-12-15 19:42:41 所属栏目:百科 来源:网络整理
导读:我在C#中有一个泛型类,如下所示: public class GenericClassT { ... } 现在,我有一个对象的Type对象,并希望通过反射或其他方式获得GenericClass T的Type对象.其中T对应于那个Type对象,我有我的对象. 像这样: Type requiredT = myobject.GetType(); Type wa
我在C#中有一个泛型类,如下所示:
public class GenericClass<T> { ... } 现在,我有一个对象的Type对象,并希望通过反射或其他方式获得GenericClass< T>的Type对象.其中T对应于那个Type对象,我有我的对象. 像这样: Type requiredT = myobject.GetType(); Type wantedType = typeof(GenericClass<requiredT>); 显然这种语法不起作用,但我该怎么办呢? 解决方法
是的你可以:
Type requiredT = ... Type genericType = typeof(GenericClass<>); Type wantedType = genericType.MakeGenericType(requiredT); 这将为您提供GenericClass< T>键入object,其中T对应于您的requiredT. 然后,您可以使用Activator构造一个实例,如下所示: var instance = Activator.CreateInstance(wantedType,new Object[] { ...params }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |