where T:new() 是什么意思

 

常常看到方法后面加where T:new() ,下面来解释下函数

好比以下这个方法
   protected  static  T CreateNewInstance<T>() where T :  new () 
        
             return  new  T(); 
         }

 

解释以下:spa

T后面跟的是泛型约束,啥叫泛型约束,就是你必需要符合这个规则来,否则就不让你编译经过 。code

后面的new()表明这个T 必须有一个无参的构造函数,string

固然一个新建的class。这个类作为T,也是能够编译经过的。编译

由于若是类中没有构造函数会默认就加一个无参的构造函数,恰好符合这个约束。class

好比泛型

Public Class People{}构造函数

这个people 作为T默认是能够编译经过的。由于他等同于方法

Public Class People(public People(){})static

但若是有一个这样的People就会编译不经过了。

Public Class People(public People(string s){}})

相关文章
相关标签/搜索