如何使用反射获取泛型类的名称?

时间:2009-11-18 00:23:41

标签: c# generics reflection class

如何使用反射

获取泛型类的名称

例如

public class SomeGenericClass<T>
{
}

SomeGenericClass<int> test = new SomeGenericClass<int>();

test.GetType().Name返回“SomeGenericClass'1”

如何在没有'1?

的情况下返回“SomeGenericClass”

3 个答案:

答案 0 :(得分:4)

'1是名称的一部分,因为,例如,List<T>List(如果我创建了这样的类)是不同的类。

'1表示它有一个类型参数。如果您想知道该参数的类型,请使用test.GetType()。GetGenericArguments()[0];

答案 1 :(得分:1)

enum.GetName(test.GetType(), test).ToString()

答案 2 :(得分:0)

以下几点怎么样?

test.GetType().Name.Split('\'')[0]

它也适用于非泛型类。

相关问题