您可以对多个泛型类型参数强制执行相同的约束吗?

时间:2013-08-17 15:58:01

标签: c# generics constraints

我知道你可以这样做:

void M<T1, T2, T3>() where T1 : S where T2 : S where T3 : S 
{}

我想要这样的事情:

void M<T1, T2, T3>() where T1, T2, T3 : S 
{}

有没有这样的捷径?

1 个答案:

答案 0 :(得分:2)

不,不支持。 C#语言规范说明

  

每个type-parameter-constraint-clause都包含令牌where,后跟类型参数的名称,后跟冒号和该类型参数的约束列表。

这里的关键是 a ,表示语法需要where <TypeParam> : <Constraint1>,<Constraint2>, etc..