C# 委托

委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。 在实例化委托时,你可以将其实例与任何具有兼容签名和返回类型的方法相关联。 你可以通过委托实例调用方法。

委托的使用:

* 方法的签名必须和委托一致,方法签名包括参数的个数,类型和顺序
* 方法的返回值类型要和委托一致

* 定义委托
* 声明委托变量
* 实例化委托类型
* 将委托作为参数传递

public delegate int Mydel(int x, int y);//定义委托
class Program
    {
        static void Main(string[] args)
        {

            student stu = new student();
            Mydel Mydelegate = new Mydel(stu.add);//传入stu.add 方法
            Mydel Mydelegate2 = new Mydel(stu.mul);
            //Mydel Mydelegate1 = delegate (int x, int u) { return stu.add(x, u); };
            var add = Mydelegate(2, 6);//调用委托    或Mydelegate.Invoke(2, 6);
            Console.WriteLine(add);
            //委托可以调用多个方法。 这被称为多播。 若要向委托的方法列表(调用列表)添加其他方法,
            //只需使用加法运算符或加法赋值运算符(“+”或“+=”)添加两个委托。
            Mydelegate += Mydelegate2;           
            Console.WriteLine(Mydelegate(5, 5));//先调用mydelegete  再调用mydelegete2  
            Console.ReadKey();
        }
    }
class student
    {
        public int add(int x, int y)
        {
            return x + y;
        }
        public int sub(int x, int y)
        {
            return x - y;
        }
        public int mul(int x, int y)
        {
            return x * y;
        }

    }

  

可参考:https://www.cnblogs.com/sunliyuan/p/6036539.html   

官方版本:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/delegates

 

上一篇:C#语言的高级特性


下一篇:C#委托和事件的使用示例