泛型 Generic

1 引入泛型:延迟声明
2 如何声明和使用泛型
3 泛型的好处和原理
4 泛型类、泛型方法、泛型接口、泛型委托
5 泛型约束
6 协变 逆变
7 泛型缓存

泛型 Generic 本质 ~占位符 (必须编译器支持)
1.泛型类、泛型方法、泛型接口、泛型委托
2.泛型约束 1)基类约束 2)接口约束 3)引用类型约束 4)值类型约束 5)无参构造函数约束 关键字 where
3.协变 逆变 因为泛型存在的一个概念。
所谓的协变 就是 泛型可以用父类返回类型。关键词 out     

Func<object> func = new Func<string>(() => "");

所谓逆变 就是 泛型中 可以用父类做参数类型。关键词 in

Action<string> func = new Action<object>(t => { });



原文地址:https://www.cnblogs.com/vsnb/p/12119963.html