《C#图解教程(第五版)》- 14.7 为委托添加方法

委托是恒定的,委托对象被创建后不能再被改变。不过C#提供了看上去可以为委托添加方法的语法,即使用+=运算符。在使用+=运算符时,实际发生的是创建了一个全新的委托。

示例:如下代码为委托的调用列表“添加”了两个方法

using System;

namespace ConsoleApp5
{
    //声明委托类型
    delegate void MyDel(int x);

    class inst
    {
        //实例方法
        public void MyM1(int x)
        {
            Console.WriteLine($"Print MyDel:{x}");
        }
    }

    class SCl
    {
        //静态方法
        public static void m3(int x)
        {
            Console.WriteLine($"Print m3:{x*2}");
        }
    }

    class X
    {
        //静态方法
        public static void Act(int x)
        {
            Console.WriteLine($"Print Act:{x*3}");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            //委托中使用的是实例方法,则需要通过类的实例来调用方法,即使用“new 类名 (). 方法名”的形式。
            MyDel delVar = new MyDel(new inst().MyM1);
            
            //增加方法
            delVar += SCl.m3;

            //增加方法
            delVar += X.Act;

            //调用委托
            delVar(3);          
            
        }
    }
}

执行上面的代码,效果如下图所示。

未经允许不得转载:透视数据 » 《C#图解教程(第五版)》- 14.7 为委托添加方法