比方說,我有一個泛型類:使用泛型類型的超類的泛型方法?
public class MyGenericClass<T> {
...
}
現在這個班級裏面,我想有一個方法可以讓我與其他一般的互動,這可能是通用型T
或T
任何超類,例如:
public void DoSomething<T1>(List<T1> things)
where T : T1 // of course this won't compile
{
...
}
你會如何做到這一點?
有趣的是,因爲約束'where T1:T'被允許。任何想法爲什麼OPs約束不被允許? –
@mikez:是的--OP的約束在'T'上,它不是該方法的類型參數。在我的方法中,兩個類型約束同時引入,因此您可以基於另一個約束一個約束。 –
+1嘿喬恩,謝謝你的回答。只是覺得你想要一個ping來看看我想出的替代答案。 –