"where T : X, new()" or "where T : new(), X&q

本文关键字:quot new where or | 更新日期: 2023-09-27 18:17:17

下面两个泛型方法的区别是,在第一个方法中new()是先写的,Book是最后写的,而在最后一个方法中反之亦然。

public static void Save<T>(T target) where T : new(), Book
{
   ....
}

public static void Save<T>(T target) where T : Book, new()
{
   ....
}

"where T : X, new()" or "where T : new(), X&q

区别是第一个不编译。

从MSDN:

where T : new()类型参数必须有一个公共无参数构造函数。当与其他约束一起使用时,new()约束必须最后指定。