gpt4 book ai didi

c# - 从订阅者取消订阅 .NET 事件

转载 作者:太空狗 更新时间:2023-10-30 00:56:45 25 4
gpt4 key购买 nike

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

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

Class1 A = new Class1();
Class2 B = new Class2();

A.DoneIt += B.X;

意思是 A.DoneIt -= B.X; 没有对 A 类的任何访问权限(也没有对 A 类进行反射)。

最佳答案

不可以,您只有在可以访问该事件时才能取消订阅。

委托(delegate)指向一个方向,即指向一个方法。该方法没有指向事件的指针。因此,对要取消订阅的事件的唯一访问是通过定义它的类型实例。

进一步阅读:Events And Delegates

关于c# - 从订阅者取消订阅 .NET 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6938048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com