日期:2014-05-18  浏览次数:20838 次

关于C#语法```
public abstract class ThreadArray<T> where T : ThreadArrayConfig, new() 
  {
  }

我对这行代码比较迷茫了··· 
那位大大能够详细解释下 class ThreadArray<T> where T : ThreadArrayConfig, new() 这个语法的含义么(其中ThreadArrayConfig是个一类)?

------解决方案--------------------
【where T : ThreadArrayConfig, new() 】这个语法就是泛型类型参数的约束。
表示T必须是继承自ThreadArrayConfig,并且拥有无参数的公共构造函数。
------解决方案--------------------
where T是对这个泛型类的约束,比如where T : ThreadArrayConfig,则就是T必须要是ThreadArrayConfig类或者继承了ThreadArrayConfig的类。
new() 约束类型T必须具有无参的构造函数
------解决方案--------------------
ThreadArrayConfig是一个类型,可能是一个类,也可能是一个接口。
new()告诉编译器,该T支持无参数构造,即可以T t = new T();
where T,是用来约束T的。