加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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 });

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读