C#如何删除委派

本文关键字:删除 委派 何删除 | 更新日期: 2023-09-27 18:04:53

可能重复:
取消订阅C#中的匿名方法

我有一些面板,当创建时,它们被委托成为可点击的:

int z2 = z;
PicBx[z].Click += delegate { clicked(z2, null); };

如果程序需要,我想删除它。我尝试使用:

int z2 = z;
PicBx[z].Click -= delegate { clicked(z2, null); };

但它没有起作用。有什么方法可以从中删除可点击的委派吗?

C#如何删除委派

您不能取消订阅匿名委托,您需要保留对委托的引用

var myClickDelegate = (RoutedEventHandler)delegate { clicked(z2, null); };
PicBx[z].Click += myClickDelegate;
...
PicBx[z].Click -= myClickDelegate;

或者创建命名函数

希望这能帮助