如何在单个方法上指定多个泛型类型约束?

时间:2010-07-07 18:48:16

标签: c# generics

我可以使用“Where”子句将泛型限制为指定类型,例如:

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

如果我的函数有两种泛型类型,我该怎么做?

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

以上不起作用。添加规则“TTypeB:class,B”

的正确语法是什么

4 个答案:

答案 0 :(得分:56)

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

答案 1 :(得分:8)

public void foo<TTypeA, TTypeB>() where TTypeA : class, A where TTypeB : class, B
迟到,20多岁了。为James Curran投票,他是第一个。

答案 2 :(得分:6)

这样的东西?

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

答案 3 :(得分:1)

只需将&&替换为另一个where