扩展方法基础
、扩展方法
//1.扩展:扩充--让功能变的更加强大--让不存在功能存在 ---新增方法
//2.已经存在方法,正常调用
//3.如果需求变更,需要支持一个 学习架构班的方法
// a.常规方案:直接在这个类的内部增加一个方法呗
// 问题:1.修改了 类的结构---类一旦修改,类就需要重新发布编译 2.违背了开闭原则---如果要新增一个功能,尽量做到不去修改之前的代码,都通过增加类,增加程序集来完成功能额新增;
//4.更好方案:新增一个类,把当前需要增加行为的类当做参数传递到新增的类中的的一个方法中,在这个方法中,就可以获取到传递过来的这个实体中的各种数据;
// a 通过新增类来新增了功能
// 好处:原来的类没有任何修改,新增了功能--并没有修改之前的类;
//5.个新增的这个类定义为静态类,在第一个参数前增加一个this 关键字
//6.在调用这个方法的时候--就可以像实例方法一样来进行调用。
Student student = new Student() { Id = 123, Name = "456", Age = 25, ClassId = 1 }; student.Study();//调用方法 //this方法 public static void StudyFramework(this Student student) { Console.WriteLine(“11”); } student.StudyFramework(); //在这里的调用,就像是调用实例方法一样
可以给int object string等类型扩展,但是有继承性, 给object 扩展,其他类型也会有,
扩展方法应用场景
//1.扩展第三方的类库--因为第三方类库,通过dll方式引入进来的;我们是不能直接取修改代码;可以通过扩展方法,给第三方的类库中的某个类型增加功能呢,扩展功能;
//2.在系统做维护的的时候,需要做到不修改之前的代码,想要增加功能的时候;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现