C#Generics - 如何使用类型

Die*_*xel 0 c# generics

我对C#generics相当新,我想知道一些事情是如何工作的.

如果我有这个:

public class Foo<T>
Run Code Online (Sandbox Code Playgroud)

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

public string GetType();
{
    return T.GetType().ToString();
}
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Iva*_*lov 6

public string GetTypeName()
{
    return typeof(T).ToString();
}
Run Code Online (Sandbox Code Playgroud)

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

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

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