C# 泛型约束
泛型约束的作用我认为是为了对泛型编程做一个规范
比如where T : class,意思是当前泛型T必须为引用类型,值类型(int、double、float等)是不被允许作为泛型传入到类型当中的。当程序员企图在代码中这么做的时候,编译器就会报错。
where T : <类名\接口名> 则代表当前T只能是这个类(或者是其派生类)和接口,这样就限制了泛型的范围
至于new(),作用就是使泛型T不能带有任何除公共无参构造函数以外的任何构造函数:
1 public class Awhere T : I, new() 2 { 3 public void FuncA() 4 { 5 Console.WriteLine("A!"); 6 } 7 }
例如上面的代码,当A
A