C#中通用类型约束的排序

时间:2018-07-30 20:01:18

标签: c# generics

我试图理解C#中的通用类型约束,其格式如下:

public class AGenericClass<T> where T : IComparable<T> { }

根据documentation

  • new()约束使编译器知道提供的任何类型参数必须具有可访问的默认构造函数。
  • new()约束出现在where子句的最后

第二个约束背后的原因是什么,即如果存在多个约束,new()应该是最后一个约束?例如,

public class MyGenericClass<T> where T : IComparable<T>, new()
{
    // The following line is not possible without new() constraint:
    T item = new T();
}

0 个答案:

没有答案