如何使用反射如何使用反射获得泛型类的名称?
如
public class SomeGenericClass<T>
{
}
SomeGenericClass<int> test = new SomeGenericClass<int>();
test.GetType().Name
返回“SomeGenericClass'1”
你得到一个泛型类的名称如何获得它返回“SomeGenericClass”没有“ 1?
如何使用反射如何使用反射获得泛型类的名称?
如
public class SomeGenericClass<T>
{
}
SomeGenericClass<int> test = new SomeGenericClass<int>();
test.GetType().Name
返回“SomeGenericClass'1”
你得到一个泛型类的名称如何获得它返回“SomeGenericClass”没有“ 1?
以下情况如何?
test.GetType().Name.Split('\'')[0]
它也适用于非泛型类。
'1是名称的一部分,因为,例如,List<T>
和List
(如果我创建了这样的类)是不同的类。
'1表示它有一个类型参数。如果您想知道该参数的类型,请使用test.GetType()。GetGenericArguments()[0];
enum.GetName(test.GetType(), test).ToString()
这将工作,但我想知道如果我可以直接访问属性? – Petras 2009-11-18 00:29:11
为什么它没有得到'SomeGenericClass'的实际类型? –
2009-11-18 00:32:52
因为? – Noldorin 2009-11-18 01:06:50