扩展方法基础
、扩展方法
//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.在系统做维护的的时候,需要做到不修改之前的代码,想要增加功能的时候;