如何获取泛型参数的类型

本文关键字:泛型 参数 类型 获取 何获取 | 更新日期: 2023-09-27 17:56:37

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

例如:

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

如何获取泛型参数的类型

Type type = typeof(T);

这将为你获得类型 T 的类型对象。

type.IsPrimitive会告诉您它是否是基元类型之一,请参阅此处的列表:http://msdn.microsoft.com/en-us/library/system.type.isprimitive.aspx

另外,请注意,尽管string是与 .NET 系统高度集成的基本类型,但它不是基元。 System.String是一个成熟的类,而不是一个原始的。

使用以下方法获取 T 的类型:

Type typeParameterType = typeof(T);

类型(C# 参考)

您也可以从 T 类型的实例中获取 T 的类型:

instance.GetType();