我被问到一个关于事件的非常有趣的问题。我认为答案是否定的,但我很好奇是否有一种我不知道的方式。
在下一个代码示例中,我可以从引用类B或其方法X ??
中删除订阅Class1 A = new Class1();
Class2 B = new Class2();
A.DoneIt += B.X;
意味着在没有任何A类访问权的情况下执行A.DoneIt -= B.X;
(也不能通过A类反射)。
答案 0 :(得分:6)
不,您只能取消订阅才能访问该活动。
代表指向一种方式,即一种方法。该方法没有指向事件的指针。因此,对取消订阅的事件的唯一访问是通过它定义的类型实例。
进一步阅读:Events And Delegates