第十九节 反射、特性
视频链接:刘铁猛老师的《C#语言入门详解》
https://www.youtube.com/watch?v=EgIbwCnQ680&list=PLZX6sKChTg8GQxnABqxYGX2zLs4Hfa4Ca
#
反射和特性的使用示例在追求更松的耦合那一块。
不是C#语言的功能,而是.net 框架的功能。
注意:
(1) .net framework 和 .net core 的反射API有些不同。
(2)反射是动态的在内存里面去拿到对象与它绑定类型的描述,用这些描述去创建对象(不是直接new),会影响性能,避免过多的使用。
依赖注入#
依赖注入是依赖反转这个概念上,结合接口和反射机制形成的一个应用
依赖注入要借助框架。
追求更松的耦合#
一般情况下用在插件式编程,插件指的是不与主体程序一起编译但是能与主体程序一起工作的组件。
好处:以主体为中心,构成一个生态圈。一方面写主体,一方面写插件。
为了减轻第三方插件开发商的犯错误/减轻成本,开发商主体程序一般会发布sdk去减少第三方的负担。
创建sdk:类库(与主体程序分开),完成后把生成的dll交给第三方。一般放到一个网盘,所有第三方都可以下载
(1)sdk这个类库中,添加IAnimal的接口,第三方都要实现这个接口。避免Voice这个地方出错。
(2)
使用sdk:首先主体程序需要引用这个sdk
然后第三方插件方也要引用这个sdk,进行相应的修改
如果没有开发完 添加一个[Unfinished]
特性作用:就是让你使用反射的时候,通过反射拿到一个方法或者一个类,看它有没有被某一个特性给修饰,然后再去做决定看掉不掉用它,是放弃还是保留。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?