2010-01-05 90 views
2

想象一下以下的方法如何指定一個泛型類型應該實現另一個泛型類型?

public void SomeMethod<T>(T param) 
    where T: List<T2> 
{ 
} 

它不工作:

錯誤16類型或命名空間名稱「T2」找不到(是否缺少using指令或程序集引用?)

如何實現我明確打算做的事情?

+0

您打算做什麼不清楚,因爲您的標題措辭不當。它應該是:「如何指定一個泛型方法來接受一個泛型類型的參數?」。 – James 2010-01-05 19:47:45

回答

9

爲了做到這一點,你需要指定一個額外的泛型參數

public void SomeMethod<T1,T2>(T1 param) 
    where T1 : List<T2> 
{ 
} 
3

作爲一個方面的答案被接受的解決方案,因爲T被明確地涉及到T2,爲什麼個人有T呢?

public void SomeMethod<T2>(List<T2> listParam) 
{ 
} 
+0

好點!!!!!! – 2010-01-05 20:07:10