C#的代理delegate

在C#中,委托是对该方法的引用。它的工作方式类似于C和C ++中的函数指针。但是它比函数指针具有面向对象,安全和类型安全的特点。
对于静态方法,委托仅封装方法。但是对于实例方法,它同时封装了方法和实例。
委托的最佳用途是用作事件。
在内部,委托声明定义了一个类,该类是System.Delegate的派生类。
C#委托示例【C#的代理delegate】让我们看一个简单的C#委托示例,该示例调用add()和mul()方法。

using System; delegate int Calculator(int n); //declaring delegatepublic class DelegateExample { static int number = 100; public static int add(int n) { number = number + n; return number; } public static int mul(int n) { number = number * n; return number; } public static int getNumber() { return number; } public static void Main(string[] args) { Calculator c1 = new Calculator(add); //instantiating delegate Calculator c2 = new Calculator(mul); c1(20); //calling method using delegate Console.WriteLine("After c1 delegate, Number is: " + getNumber()); c2(3); Console.WriteLine("After c2 delegate, Number is: " + getNumber()); } }

输出:
After c1 delegate, Number is: 120 After c2 delegate, Number is: 360

    推荐阅读