我在代码中有一个事件处理程序,当我期望它只被调用一次时,我看到它被多次调用.
在过去,这是因为我已经将委托定义在错误的位置(所以更多的是将一个委托添加到事件处理列表中),但是在这种情况下,这只会被设置一次(在类构造函数中).
而不是继续手动搜索我的代码寻找错误,我可以采取(简单)实用的方法来确定事件处理程序的分配位置?
Rog*_*mbe 18
您可以替换默认值:
public event EventHandler MyEvent;
Run Code Online (Sandbox Code Playgroud)
...用
private EventHandler _myEvent;
public event EventHandler MyEvent
{
add { _myEvent += value; }
remove { _myEvent -= value; }
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以在添加/删除函数中放置日志记录或断点,并查看调用堆栈.
| 归档时间: |
|
| 查看次数: |
441 次 |
| 最近记录: |