2010-07-07 87 views
33

我可以限制使用「去哪兒」條款仿製藥的指定類型,如:如何在單個方法上指定多個泛型類型約束?

public void foo<TTypeA>() where TTypeA : class, A 

我怎麼做,如果我的功能有兩個泛型類型?

public void foo<TTypeA, TTypeB>() where TTypeA : class, A && TTypeB : class, B 

上述不起作用。什麼是正確的語法來添加規則 「TTypeB:類,B」

回答

53
public void foo<TTypeA, TTypeB>() where TTypeA : class, A 
            where TTypeB : class, B 
+1

有關泛型類型參數約束的更多信息可在MSDN上,他們描述了一些其它種類的限制可能(喜歡裸睡約束的替代&& ')。 http://msdn.microsoft.com/en-us/library/d5x73970.aspx – LBushkin 2010-07-07 18:53:50

+0

謝謝大家!有用。我會記住這爲答案曾經那麼讓我(顯然我必須等待9分鐘) – Justin 2010-07-07 18:54:19

8
public void foo<TTypeA, TTypeB>() where TTypeA : class, A where TTypeB : class, B 

宕,20年代末。爲James Curran投票,他是第一個。

+2

但你有一個班輪8-) – Dani 2014-02-13 07:19:42

6

像這樣的事情? `那裏TTypeB:TTypeA

public void foo<TTypeA, TTypeB>() where TTypeA : class where TTypeB : class 
0

只是另一個where

+0

不正確的,只有一個約束條件可以放在無需額外的類型 – 2014-12-05 13:11:18