C# 从多播委托中删除特定委托的所有实例
注意:我写这篇文章是为了记录我问题的答案,因为我经常发现自己不得不手动研究这个问题 我正在寻找一种有效的确定性方法,从多播委托中删除委托的所有实例。以tis代码为例:C# 从多播委托中删除特定委托的所有实例,c#,multicastdelegate,C#,Multicastdelegate,注意:我写这篇文章是为了记录我问题的答案,因为我经常发现自己不得不手动研究这个问题 我正在寻找一种有效的确定性方法,从多播委托中删除委托的所有实例。以tis代码为例: Func<int> outputProvider = null; Func<int> valueProvider1 = () => 1; Func<int> valueProvider2 = () => 2; Func<int> valueProvider3 =
Func<int> outputProvider = null;
Func<int> valueProvider1 = () => 1;
Func<int> valueProvider2 = () => 2;
Func<int> valueProvider3 = () => 3;
outputProvider += valueProvider1;
outputProvider += valueProvider2;
outputProvider += valueProvider3;
outputProvider += valueProvider3;
outputProvider -= valueProvider3;
var value = outputProvider.Invoke();
Console.WriteLine("Value: " + value);
Func outputProvider=null;
Func valueProvider1=()=>1;
Func valueProvider2=()=>2;
Func valueProvider3=()=>3;
outputProvider+=valueProvider1;
outputProvider+=valueProvider2;
outputProvider+=valueProvider3;
outputProvider+=valueProvider3;
outputProvider-=valueProvider3;
var value=outputProvider.Invoke();
Console.WriteLine(“值:”+Value);
尽管我删除了提供程序3,但输出仍然是3,有没有一种简单的方法可以删除委托的所有实例?非常简单:
outputProvider=(Func)委托.RemoveAll(outputProvider,valueProvider3);
我看不到您要从哪里删除it@Charliefaceoops复制错误感谢您提醒我使用它自己检查代理集?