码迷,mamicode.com
首页 > 其他好文 > 详细

扩展方法

时间:2015-02-10 23:02:45      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

 

扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。(引自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 方法,如果找到则执行方法,没有找到才去找扩展方法并执行

 

扩展方法

标签:

原文地址:http://www.cnblogs.com/jhy55/p/4285066.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!