2014-03-12 81 views
0

我有一個泛型類 - Class1<T>, 和一個普通類 - Class2C# - 泛型類的一般方法

我想在Class2中創建一個通用的方法,將Class1作爲參數。 我試圖做的:

void DoSomething<T>(Class1<T> data) { 
... 
} 

但我得到一個錯誤:

Error 25: The type 'T' must be a reference type in order to use it as parameter 'T' in the generic type or method ' Class1<T> '.

我該怎麼辦呢?

+0

你能否將Class1的代碼添加到問題中? –

+0

你可以顯示'Class1'和'Class2'的類定義嗎?另外請閱讀關於代碼格式的幫助,以便您在編寫問題時知道如何使Class1 < T >看起來像'Class1 '。 –

回答

4

這聽起來像你有Class<T>一個where T : class限制,所以你只需要修改方法簽名匹配:

void DoSomething<T>(Class1<T> data) where T : class 
+0

非常感謝! – TamarG

0

我認爲你需要如下定義Class1<T>

public class Class1<T> where T : class // here `T` is regarded as a reference type 
{ 

}