如何获取泛型参数的类型?

4

如何获取泛型参数的类型?

例如:

void Example<T>()
{
  // Here I want to get the type of T (and how can I get if T is a primitive 
  // kind (int,bool,string) not class)
} 
3个回答

8
Type type = typeof(T);

这将为您获取类型T的类型对象。 type.IsPrimitive将告诉您它是否是原始类型之一,详见此处列表:http://msdn.microsoft.com/en-us/library/system.type.isprimitive.aspx 另外,请注意,尽管string是一个基本类型,与.NET系统非常集成,但它不是一个原始类型。System.String是一个完整的类,而不是一个原始类型。

6
使用以下代码获取 T 的类型:
Type typeParameterType = typeof(T);

typeof (C# 参考)


2

您可以通过 T 类型的实例获取 T 的类型:

instance.GetType();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接