2009-11-18 88 views
2

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

public class SomeGenericClass<T> 
{ 
} 

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

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

你得到一个泛型类的名称如何获得它返回“SomeGenericClass”没有“ 1?

回答

0

以下情况如何?

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

它也适用于非泛型类。

+1

这将工作,但我想知道如果我可以直接访问属性? – Petras 2009-11-18 00:29:11

+0

为什么它没有得到'SomeGenericClass '的实际类型? – 2009-11-18 00:32:52

+0

因为? – Noldorin 2009-11-18 01:06:50

4

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

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

1
enum.GetName(test.GetType(), test).ToString() 
相关问题