委托解绑的一个小问题

在对委托使用-=解绑方法时,resharper会出现一个提示:Delegate substraction has unpredictable result。

http://confluence.jetbrains.com/display/ReSharper/Delegate+subtraction+has+unpredictable+semantics 解释了原因。

 

根据该网页所举出的示例:

                Action a = () => Console.Write("A");
                Action b = () => Console.Write("B");
                Action c = () => Console.Write("C");
                Action s = a + b + c + Console.WriteLine;
                s();                  //ABC
                (s - a)();            //BC 
                (s - b)();            //AC  
                (s - c)();            //AB   
                (s - (a + b))();      //C 
                (s - (b + c))();      //A  
                (s - (a + c))();      //ABC 
                Console.Read();

(s - (a + c))(); 
a+c并不是一个ABC委托连的子集,因此,该行代码无效,仍然会执行所有委托连上的方法。

 

 

转载于:https://www.cnblogs.com/Benjamin/p/3350371.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值