委托的多播

文章介绍了C#中如何使用+运算符合并委托,创建多播委托,以及如何通过-运算符移除合并中的组件委托。文中通过示例展示了无返回值和有返回值的委托多播,并指出在多播具有返回值的委托时,结果仅由最后一个方法决定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.委托对象可使用 + 运算符进行合并。

2. -运算符可用于从合并的委托中移除组件委托。

3.只有相同类型的委托可以被合并。

多播就是 委托1+委托2

 internal class Program
    {
        
        Action  action;// 无参数 无返回值
        Func<int> func; // 无参数有返回值
        static void Main(string[] args)
        {
            //    委托的多播
            //1.委托对象可使用 "+" 运算符进行合并。
            //2."-" 运算符可用于从合并的委托中移除组件委托
            //3.只有相同类型的委托可被合并
            Program program = new Program();
            //委托的多播
            program.action = ProgramMothod;
            program.action += ProgramMothod1;
            program.action += ProgramMothod2;
            program.action();
            program.action-= ProgramMothod1;
            //program.action();

            //多播具有返回值的 只会得到最后一个方法的结果
            program.func = ProgramMothod3;
            program.func += ProgramMothod4;
            program.func += ProgramMothod5;
            Console.WriteLine(program.func()); // 30
            Console.ReadKey();
            
        }

        public static void ProgramMothod() {
            Console.WriteLine(1);

        }
        public static void ProgramMothod1()
        {
            Console.WriteLine(2);

        }
        public  static void ProgramMothod2()
        {
            Console.WriteLine(3);

        }
        public static int ProgramMothod3()
        {
            return 10;

        }
        public static int ProgramMothod4()
        {
            return 20;

        }
        public static int ProgramMothod5()
        {
            return 30;

        }
    }

多播具有返回值的 只会得到最后一个方法的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值