public static int InsertModel<T>(T t, IDataSourceType idatasource) where T : new()
这是一个泛型方法,我想问的是方法后面跟的where T表示什么意思?:new()又是代表什么?越详细越好,呵呵

解决方案 »

  1.   

    where T: new() 是对泛形参数进行约束
    new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数
      

  2.   

    参考MSDN原文在定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的类型种类施加限制。如果客户端代码尝试使用某个约束所不允许的类型来实例化类,则会产生编译时错误。这些限制称为约束。约束是使用 where 上下文关键字指定的。T:new()
     类型参数必须具有无参数的公共构造函数。当与其他约束一起使用时, new() 约束必须最后指定。 
     
      

  3.   

    后面是泛型约束,new()名面上是约束T必须具有默认公共无参构造实际代码含义是允许方法体内使用 T t=New T()去新建一个泛型实例