我对C#generics相当陌生,我想知道一些事情是如何运作的。
如果我有这个:
public class Foo<T>
在我的课上我有一个方法GetType,它只返回T的类型。我该怎么做才能使我的方法能够使用T。
public string GetType();
{
return T.GetType().ToString();
}
我正在尝试学习一个简单的例子来帮助我理解。
感谢。
答案 0 :(得分:6)
public string GetTypeName()
{
return typeof(T).ToString();
}
T
不是某个实例,它是实际的类型参数。同样,您不能说String.GetType()
,但您可以说typeof(String)
。通常,您在实例上调用GetType()
,在类型上调用typeof(something)
。
此外,我已将您的GetType
方法重命名为GetTypeName
,因为方法GetType
在object
类型上声明,因此如果您尝试使用它,编译器会抱怨。
还有一件事:分号在方法体之前是非法的,所以我将其删除了。