1、引入泛型:延迟声明,即在声明的时候没有指定参数类型,只有当调用的时候才会确定 其参数类型(架构师的理念:推迟一切可以推迟的)

2、如何声明和使用泛型

3、泛型的好处和原理

4、泛型类、泛型方法、泛型委托、泛型接口

 (.NET高级课程笔记)泛型总结

 

5、泛型约束

6、协变、逆变(选修)

7、Typeof()GetType()的区别:Typeof(类名).Name:获取类的名称;参数名称.GetType().Name 获取参数的名称(疑问)

 (.NET高级课程笔记)泛型总结

 

8、编译的时候,泛型类型参数编译为占位符;程序运行的时候,jit即时编译替换为真实类 型。

9、为什么要有泛型:有相同的逻辑,不确定参数类型时,实现代码的重用,又解决性能的 问题

10、

 (.NET高级课程笔记)泛型总结

(.NET高级课程笔记)泛型总结

 

 (.NET高级课程笔记)泛型总结

 

 

 

11、做依赖注入时,用泛型方法会比泛型类简单点。

12、约束有:基类约束、接口约束,也可以多个一起约束,是与(&&)的关系

13、约束类型共有5种,除了类约束、接口约束,还有:值类型约束、引用类型约束、无参数构造函数约束,默认返回值都可以

成:return default(T);

 (.NET高级课程笔记)泛型总结

 

只有约束为无参数构造函数约束时,才可以:T t=new T();

14、协变和逆变只能出现在接口或者委托

(.NET高级课程笔记)泛型总结

 

int:逆变,只能是参数传入

out:协变,只能是返回值传出

实例: 

 

(.NET高级课程笔记)泛型总结

(.NET高级课程笔记)泛型总结

(.NET高级课程笔记)泛型总结

 

说明:Sparrow类继承自Bird

协变、逆变的用处体现有:Func委托,如Func<int,out>...

 

15、泛型缓存:(.NET高级课程笔记)泛型总结

 

相关文章:

  • 2021-08-27
  • 2022-12-23
  • 2022-12-23
  • 2021-04-11
  • 2021-06-21
  • 2021-06-19
  • 2021-04-26
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-14
  • 2021-10-05
  • 2022-12-23
  • 2022-03-01
相关资源
相似解决方案