📜  C#委托

📅  最后修改于: 2020-10-31 10:45:40             🧑  作者: Mango

C#委托

在C#中,委托是对该方法的引用。它的工作方式类似于C和C++中的函数指针。但是它比函数指针具有面向对象,安全和类型安全的特点。

对于静态方法,委托仅封装方法。但是对于实例方法,它同时封装了方法和实例。

委托的最佳用途是用作事件。

在内部,委托声明定义一个类,该类是System.Delegate的派生类。

C#委托示例

让我们看一个简单的C#委托示例,该示例调用add()和mul()方法。

using System;
delegate int Calculator(int n);//declaring delegate
    
public 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