c#扩展方法

2024-04-23 19:17:58 浏览数 (3)

下面先通过一段程序告诉大家什么是扩展方法

代码语言:javascript复制
  static class ExtendMethod
    {
        public static int GetAvg(this int sum)
        {
            return sum / 5;
        }
    }
代码语言:javascript复制
    class Program
    {
        static void Main(string [] args)
        {
            int a = 10;
            Console.WriteLine(a.GetAvg());
            Console.ReadKey();
        }
    }

简单的说,一个可以通过“.”方式调用的方法就是扩展方法 我们通过上面的代码来看下扩展方法定义的时候需要注意的问题,和对上面代码的解释

  1. 扩展方法必须在静态类中定义
  2. 扩展方法是一种特殊的静态方法
  3. 第一个参数前加关键字this,int表示为所有的int类型添加扩展方法
  4. sum表示当前变量

什么时候使用扩展方法? 当我们使用的某个模块被封装在DLL中,现在需要对这个封装的类中添加一个方法的时候,这样的情况我们一般可以使用继承解决。 但是当类被sealed修饰的时候,类就无法继承了,这时我们就可以使用扩展方法

扩展方法定义

不带参数的扩展方法定义 static 方法名(this 目标类型 目标类型参数) 带参数的扩展方法定义 static 方法名(this 目标类型 目标类型参数,参数类型1,参数类型2,…)

当类本身的方法与扩展方法重名时,类本身的方法被优先调用

1 人点赞