* 泛型:允许编写一个可以与任何数据类型一起工作的类或方法
* 类:class 类名<占位字符>
* 函数:返回值类型 函数名<占位字符>(参数类型 参数1,......)
* 1.最大限度的复用代码
* 2.泛型类,泛型函数,泛型接口,泛型委托,泛型事件
* 3.可以对泛型进行约束,从而访问特定的数据类型 where
* 4.泛型数据类型的类型信息可以利用反射在程序运行时获取
泛型数组
泛型委托
泛型类 + 值类型约束 struct
泛型类+引用类型约束 class
泛型类+无参构造函数约束 new()
因为Test5不存在无参构造函数、所以不能以Test5创建
泛型类+类名约束 类名
Test9与类名Test7约束没有派生关系、所以报错
泛型类+接口名约束 接口名
与类名约束同样、ITest13与接口名ITest11约束没有派生关系、所以报错
泛型类+泛型占位符约束 泛型占位符
因为占位符T,U为Test16和Test17,Test16和Test17没有派生关系、所以报错
泛型类+多种约束 约束1,约束2......