C# 扩展方法
一、概述
什么情况下会用到扩展方法?当项目原有的类型已经确定,但现需求往类型里添加方法,在不改动源代码的情况下,就需要使用扩展方法。
当现有类型想要在原有基础上增加或改变一些功能(方法),扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型,保留了类型的封装性。
二、定义

三、示例
该项目中关于Person类字段和方法都已确定,但是在该项目完成之前boss发话要给Person添加一个需求,添加一个Preson类共有的 Hobby 方法。由于项目架构都已经确定,所以为了在不修改源代码的情况下,我们用 扩展方法 来实现。我们新添加一个扩展类 PersonExtension ,添加Hobby方法:
public class Person { public string Name { get; set; } public int Age { get; set; } public bool Gender { get; set; } } public static class PersonExtension { public static void Hobby(this Person p) { Console.WriteLine("我们都有爱好"); } }
四、总结
1、扩展方法所在的类必须声明为static。
2、扩展方法必须声明为public和static。
3、扩展方法的第一个参数必须包含关键字this,并且在后面指定扩展的类的名称。
4、实例方法优先于扩展方法执行(允许有同名的实例方法和扩展方法)
5、在空引用上可以调用扩展方法
6、扩展方法能够被继承
7、至少有一个参数,以此来使用this标记第一个参数,系统方能识别是否为扩展方法

浙公网安备 33010602011771号