C#得到给定T的Generic类型

C#得到给定T的Generic类型,第1张

概述我在C#中有一个泛型类,如下所示: public class GenericClass<T> { ... } 现在,我有一个对象的Type对象,并希望通过反射或其他方式获得GenericClass< T>的Type对象.其中T对应于那个Type对象,我有我的对象. 像这样: Type requiredT = myobject.GetType(); Type wantedType = type 我在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 });
总结

以上是内存溢出为你收集整理的C#得到给定T的Generic类型全部内容,希望文章能够帮你解决C#得到给定T的Generic类型所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1224705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存