"其中T:X,new()"或者"其中T:new(),X"?

时间:2014-08-10 21:16:46

标签: c# linq generics generic-programming

以下两种通用方法之间有什么区别,第一种方法首先写入new(),最后写入Book,反之亦然。

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

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

其中Book是自定义类。

1 个答案:

答案 0 :(得分:15)

区别在于第一个不编译。

来自MSDN

  

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