C#Generics - 如何使用类型

时间:2011-07-25 03:45:11

标签: c# generics

我对C#generics相当陌生,我想知道一些事情是如何运作的。

如果我有这个:

public class Foo<T>

在我的课上我有一个方法GetType,它只返回T的类型。我该怎么做才能使我的方法能够使用T。

public string GetType();
{
    return T.GetType().ToString();
}

我正在尝试学习一个简单的例子来帮助我理解。

感谢。

1 个答案:

答案 0 :(得分:6)

public string GetTypeName()
{
    return typeof(T).ToString();
}

T不是某个实例,它是实际的类型参数。同样,您不能说String.GetType(),但您可以说typeof(String)。通常,您在实例上调用GetType(),在类型上调用typeof(something)

此外,我已将您的GetType方法重命名为GetTypeName,因为方法GetTypeobject类型上声明,因此如果您尝试使用它,编译器会抱怨。

还有一件事:分号在方法体之前是非法的,所以我将其删除了。