zoukankan      html  css  js  c++  java
  • 扩展方法

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

  • 相关阅读:
    HttpClient
    spring入门
    morphia进阶
    morphia基本API方法
    mangodb数据库框架morphia注解
    学与思
    解决vscode执行yarn启动项目报错
    使用swiper+动画实现轮播图自动播放
    vue中使用el-tree实现一行显示多条数据
    使用git命令提交部分修改代码
  • 原文地址:https://www.cnblogs.com/jhy55/p/4285066.html
Copyright © 2011-2022 走看看