鹅厂程序小哥 2019-03-01 11:02 采纳率: 100%
浏览 239
已采纳

调用委托后,只打印了Method方法,为什么没有调用MethodA???

using System;

namespace ConsoleApp2
{
    class Class21
    {
        public delegate void MethodCall();
        public static event MethodCall MethodHandle;
        static void Main(string[] args)
        {
            MethodHandle += Method;
            MethodCall call = MethodHandle;
            MethodHandle += MethodA;

            call();

            Console.Read();
        }

        public static void Method()
        {
            Console.WriteLine("调用了Method");
        }

        public static void MethodA()
        {
            Console.WriteLine("调用了MethodA");
        }
    }
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-03-01 11:50
    关注

    MethodCall call = MethodHandle;
    其实是call拷贝了一份委托链,之后的更改和它无关
    call();修改为MethodHandle();

    或者把MethodHandle += MethodA;写在前面

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?