2011-07-25 75 views
0

我對C#泛型相當陌生,想知道一些事情是如何工作的。C#泛型 - 如何使用類型

如果我有這樣的:

public class Foo<T> 

在我的班級我有一個方法GetType,這將簡單地返回T的類型我將如何做到這一點,所以我的方法將去能與T.工作

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

我想學習一個簡單的例子來幫助我理解。

謝謝。

+0

你是否試圖覆蓋'公共類型的GetType()'(類型而不是字符串)? – Keith

回答

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

T不是某個實例,它是實際類型參數。同樣,你不能說String.GetType(),但你可以說typeof(String)。一般來說,你可以在實例上調用GetType(),在類型上調用typeof(something)

而且我已經改名爲您GetType方法爲GetTypeName因爲方法GetTypeobject類型聲明,因此如果您嘗試使用它的編譯器會抱怨。

還有一件事:分號在方法體之前是非法的,所以我刪除了它。