emp*_*mpi 7 .net c# generics constraints
C#编译器需要最后指定new()约束.根据MSDN:
与其他约束一起使用时,必须最后指定new()约束.
为什么会有这样的限制?
jas*_*son 13
因为规范说明了.它可能是这样说的,因为它使得解析约束更容易一些.允许您以任何顺序指定约束几乎没有价值,我可以想象一些成本(包括机会成本!)使其成为可能.
实际上,请注意,如果您拥有它,那么规范并不只是说您必须最后具有构造函数约束.它实际上表示您必须按以下顺序拥有约束
如果主要约束是指定类型参数的约束必须是引用类型或值类型,则辅助约束是指定基类或接口的约束,构造函数约束是此处讨论的约束.
规范的相关部分是§10.1.5,绝对值得一读.