一、引入泛型:延迟声明,即在声明的时候没有指定参数类型,只有当调用的时候才会肯定 其参数类型(架构师的理念:推迟一切能够推迟的)缓存
二、如何声明和使用泛型架构
三、泛型的好处和原理函数
四、泛型类、泛型方法、泛型委托、泛型接口性能
五、泛型约束spa
六、协变、逆变(选修)blog
七、Typeof()和GetType()的区别:Typeof(类名).Name:获取类的名称;参数名称.GetType().Name: 获取参数的名称(疑问)继承
八、编译的时候,泛型类型参数编译为占位符;程序运行的时候,jit即时编译替换为真实类 型。接口
九、为何要有泛型:有相同的逻辑,不肯定参数类型时,实现代码的重用,又解决性能的 问题it
十、编译
十一、作依赖注入时,用泛型方法会比泛型类简单点。
十二、约束有:基类约束、接口约束,也能够多个一块儿约束,是与(&&)的关系
1三、约束类型共有5种,除了类约束、接口约束,还有:值类型约束、引用类型约束、无参数构造函数约束,默认返回值均可以
成:return default(T);
只有约束为无参数构造函数约束时,才能够:T t=new T();
1四、协变和逆变只能出如今接口或者委托
int:逆变,只能是参数传入
out:协变,只能是返回值传出
实例:
说明:Sparrow类继承自Bird类
协变、逆变的用处体现有:Func委托,如Func<int,out>...
15、泛型缓存: