在调用事件处理程序之前将事件处理程序复制到局部变量的原因是什么? Resharper在创建调用器时执行此操作,我记得在CodeProject上查看执行此操作的代码示例。
代码:
public class MyObject
{
public event EventHandler SomethingHappened;
protected virtual void OnSomethingHappened()
{
var handler = SomethingHappened; // Why this?
if (handler != null)
handler(this, EventArgs.Empty);
}
}