扩展方法

王朝学院·作者佚名  2016-05-20
窄屏简体版  字體: 小  |  中  |  大  |  超大  

扩展方法

扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。(引自csdn)

或许用一个例子说明更加明白

扩展方法:

public static class Helper { public static bool IsNullOrEmpty(this string str) { return string.IsNullOrEmpty(str); } }

View Code使用:

static void Main(string[] args) { Console.Write("qwe".IsNullOrEmpty()); Console.ReadKey(); }

View Code

扩展方法必须是静态类、静态方法,为什么要是静态的,看源码便可知道

扩展方法其实就是静态的方法调用

---------------------------------------------------------------------------------------------------------------------------

当一个实例对象存在一个与扩展方法同名的方法时,会执行那个方法呢?

public static class Helper { public static void Miao() { Console.WriteLine("我是扩展方法的小猫"); } } public class Cat { public void Miao() { Console.WriteLine("我是实例发的小猫"); } }

View Code static void Main(string[] args) { Cat c = new Cat(); c.Miao(); Console.ReadKey(); }

View Code

由此可见编译器编译时会优先到Cat类中找Miao方法,如果找到则执行方法,没有找到才去找扩展方法并执行

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航