'class'或'struct'约束必须在任何其他约束之前。为什么呢?

时间:2015-10-01 09:44:07

标签: c# generics type-constraints

看看以下简单的界面:

public interface IService { }

现在是以下开放泛型类,它对该接口以及任何其他引用类型都有类型约束:

public class Service<T>
    where T : IService, class

这会在class约束条件下显示以下红色卷曲的错误消息:

  

'class'或'struct'约束必须先于任何其他约束   约束

当我重新排序这样的约束时:

public class Service<T>
    where T : class, IService
然后一切都很好。

现在我知道这没有任何意义,因为如果已经使用class约束,则可以省略IService。但我只是好奇为什么命令对编译器如此重要?

0 个答案:

没有答案