class A<T> where T:new()

  class A<T> where T:new()

  这是类型参数约束,where表名了对类型变量T的约束关系。where T:A 表示类型变量是继承于A的,或者是A本省。where T: new()指明了创建T的实例应该使用的构造函数。

  .NET支持的类型参数约束有以下五种:

  where T: struct                                     T必须是一个结构类型

  where T: class                                       T必须是一个类(class)类型,不是结构(structure)类型

  where T: new()                                      T必须要有一个无参构造函数

  where T: NameOfBaseClass                     T必须继承名为NameOfBaseClass的类

  where T: NameOfInterface                      T必须实现名为NameOfInterface的接口

posted @ 2015-02-10 16:27  鷇音子  阅读(9066)  评论(2编辑  收藏  举报