取消订阅订阅者的.NET事件

时间:2011-08-04 08:03:58

标签: c# .net events reference delegates

我被问到一个关于事件的非常有趣的问题。我认为答案是否定的,但我很好奇是否有一种我不知道的方式。

在下一个代码示例中,我可以从引用类B或其方法X ??

中删除订阅
Class1 A = new Class1();
Class2 B = new Class2();

A.DoneIt += B.X;

意味着在没有任何A类访问权的情况下执行A.DoneIt -= B.X;(也不能通过A类反射)。

1 个答案:

答案 0 :(得分:6)

不,您只能取消订阅才能访问该活动。

代表指向一种方式,即一种方法。该方法没有指向事件的指针。因此,对取消订阅的事件的唯一访问是通过它定义的类型实例。

进一步阅读:Events And Delegates

相关问题