如何获得通用参数的类型?
例如:
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)
}
答案 0 :(得分:8)
Type type = typeof(T);
这将为您提供类型为T的类型对象。
type.IsPrimitive
会告诉您它是否是原始类型之一,请参阅此处的列表:http://msdn.microsoft.com/en-us/library/system.type.isprimitive.aspx
另请注意,尽管string
是一种基本类型,它与.NET系统非常集成,但它不是原始类型。 System.String
是一个完整的类,而不是原始类。
答案 1 :(得分:6)
答案 2 :(得分:2)
您还可以从类型为T的实例中获取T的类型:
instance.GetType();