17.5.2 约束类型和顺序
约束类型共有6种,如表17-2所示。
where子句之间没有顺序,但where子句内部有次序要求。也就是说,几个类型参数的约束之间没有次序要求,而对于某一个类型参数的多种约束类型,是有次序要求的。具体次序如下所示:
❑如果有class、struct或者<base class name>这三种约束类型,则必须放在第一位;
❑之后是<interface name>约束类型,数量不限;
❑如果有new()约束类型,则必须放在最后。
接下来,我们使用一段代码示例来进行说明,如图17-7所示。
图 17-7 约束类型的顺序