bil*_*lal 2 c# events event-handling
我正在使用textchanged事件,我禁用它,我不需要如下所示
object.Event -= new System.EventHandler(myHandler);
//my code which doesn't need event handler
object.Event += new System.EventHandler(myHandler);
Run Code Online (Sandbox Code Playgroud)
我曾多次使用这样的话.但我有时需要2个禁用代码,如下所示:
object.Event -= new System.EventHandler(myHandler);
object.Event -= new System.EventHandler(myHandler);
Run Code Online (Sandbox Code Playgroud)
当然我用2启用代码完成了它
object.Event += new System.EventHandler(myHandler);
object.Event += new System.EventHandler(myHandler);
Run Code Online (Sandbox Code Playgroud)
我不知道为什么我需要2次删除事件处理程序,但它工作得很好.
但在1例中我遇到了问题.
它不适用于2个或更多禁用代码.
我的问题是,如果它只需要一个 - =代码或更多,我怎么能看到这个事件处理程序?或者我该如何管理呢?我总是像这样工作,以确保我总是第一次离开事件处理程序
object.Event -= new System.EventHandler(myHandler);
//my code which doesn't need event handler
object.Event += new System.EventHandler(myHandler);
Run Code Online (Sandbox Code Playgroud)
Wil*_*ean 10
我的建议是停止删除并重新添加事件处理程序,而是向事件处理程序本身添加一个标志,该标志禁止在这些代码段中需要禁止的任何活动.
您可以使用单个布尔标志,也可以使用某种引用计数,具体取决于您需要如何处理嵌套.
如果有一些原因导致您无法更改现有的事件处理程序,那么创建一个附加到Event的新事件处理程序,并从中调用旧事件呢?