我有一个连续运行的应用程序,它创建和销毁类,其中一些类具有鼠标单击事件等事件...... 第一个问题是取消订阅的正确方法是什么?如果订阅看起来像这样:
Panel1.MouseClick += new MouseEventHandler(Action_MouseClick);
像这样取消订阅是否正确:
Panel1.MouseClick -= new MouseEventHandler(Action_MouseClick);
或者可以这样做吗:
Panel1.MouseClick -= Action_MouseClick;
或者这两种方式都可以吗?
我的另一个问题是,如果我使用 Microsoft Visual C# studio 通过设计器创建事件,它是否会作为“Dispose”方法的一部分自动取消订阅?或者我还需要将取消订阅方法放在代码中吗?
最佳答案
任何一种退订方式都会产生相同的效果,并且都是正确的。
至于你的另一个问题..如果你使用设计器为表单上的控件创建事件,当表单被处理时,事件源不再存在,因此它们不会被调用。我想我是说没有必要分离这些事件。
关于C# .NET 正确的事件订阅和取消订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3241074/