我试图理解C#中的通用类型约束,其格式如下:
public class AGenericClass<T> where T : IComparable<T> { }
new()
约束使编译器知道提供的任何类型参数必须具有可访问的默认构造函数。 第二个约束背后的原因是什么,即如果存在多个约束,new()
应该是最后一个约束?例如,
public class MyGenericClass<T> where T : IComparable<T>, new()
{
// The following line is not possible without new() constraint:
T item = new T();
}