首页 > 学院 > 开发设计 > 正文

扩展方法

2019-11-17 02:34:11
字体:
来源:转载
供稿:网友

扩展方法

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表