avatar

目录
.NET CORE编程总结

.NET CORE

装箱拆箱

装箱就是把值类型转换成引用类型(Object)值类型分配在上,拷贝到
拆箱就是把引用类型转换成值类型,从上拆开到

泛型

需要编译器、运行时支持,编译器编译时生成占位符,运行时编译时占位符替换为指定类型
延迟声明就是把参数类型的声明推迟到调用
泛型方法,泛型类,泛型接口,泛型委托都是为了满足不同参数类型,去做同一件事
泛型类,泛型接口等都能被继承
泛型约束
约束参数类型,
保证类型安全
基类约束
接口约束
引用类型约束
值类型约束
无参构造函数约束
协变 out 接口 委托 只允许出现在返回值
逆变 in 只允许出现在参数
泛型缓存

反射

什么是IOC

IOC(Inversion of Control)又称控制反转,它并不是指某种技术实现,而是OOP的一种设计原则。为什么叫控制反转?传统程序设计中,我们经常使用 new 创建对象,实际上这种做法是程序主动去创建依赖对象,可以理解为正转IOC则是有一个容器来创建对象,即由IOC容器来控制对象的创建,可以理解为反转。简单来讲,就是把程序主动创建对象交给IOC容器去做,将控制权反转给IOC容器

IoC的两种实现方式

  1. 静态型
    静态型即“静态实例器”与“静态注入器”根据相关的用户设置,使用不同的类实例与实例注入,然后由其对编译后的程序集内注入IL代码;由其在代码运行时直接注册实例到IoC容器内;但这类方式有一种缺点实现过于复杂(若需要在.NET平台实现需要对象至少了解IL编程),但实例化的效率是最高的。
  2. 反射型
    反射注入是基于在运行时动态反射元数据进而实例化的一种方式,这类方式从实现角度上最容易但效率最慢;如果仅仅只是应用启动时需要由IoC容器实例化是不错的选择,但如果是持续实例化则建议采取静态注入的方式。
  3. 小结
    我认为静态注入的方式最好,但不得不说它的缺点就相对明显了,对于需要控制使用不同的实现类可能会有些麻烦,你需要关停你的应用重新配置对于程序集的静态注入,但它的效率让人垂涎;有得就有失;在不同的场景情况下可能选择方式有所不同~从适应通用场景上看的话配置型反射注入是最佳选择。

什么是DI

DI(Dependency Injection)又称依赖注入,是IOC的一种实现方式。简而言之,由容器动态创建依赖关系并注入到组件中去。依赖注入并不能给程序带来更多功能,却可以提升组件重用率系统可扩展性,让程序更灵活。依赖注入器一般分两种模式:属性注入构造器注入,事实上属性注入也可以是字段注入;它是一种定义上的统称说法,而在这几类注入方式中,构造器注入是最佳的,属性注入是最差的,主要是属性注入方式它可能不太稳定,而构造器注入则相对于稳定。

DI生命周期

  1. AddTransient【瞬时】:每次请求,都获取一个新的实例。即使同一个请求获取多次也会是不同的实例
  2. AddScoped【作用域】:每次请求,都获取一个新的实例。同一个请求获取多次会得到相同的实例
  3. AddSingleton【单例】:每次都获取同一个实例

未完待续…

文章作者: ArcherTrister
文章链接: https://www.lxking.cn/2020/03/03/netcore/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 慕語
打赏
  • 微信
    微信
  • 支付寶
    支付寶

评论