17.5.2 约束类型和顺序

约束类型共有6种,如表17-2所示。

17.5.2 约束类型和顺序 - 图1

where子句之间没有顺序,但where子句内部有次序要求。也就是说,几个类型参数的约束之间没有次序要求,而对于某一个类型参数的多种约束类型,是有次序要求的。具体次序如下所示:

❑如果有class、struct或者<base class name>这三种约束类型,则必须放在第一位;

❑之后是<interface name>约束类型,数量不限;

❑如果有new()约束类型,则必须放在最后。

接下来,我们使用一段代码示例来进行说明,如图17-7所示。

17.5.2 约束类型和顺序 - 图2

图 17-7 约束类型的顺序