class Plane
{
public event EventHandler Land;
protected void OnLand()
{
if ( null != Land )
{
Land( this, null );
}
}
}
相反,它是事件处理程序的最佳做法:
EventHandler temp = Land;
if ( null != temp )
{
temp( this, null );
}
那真的有必要吗?在什么情况下,temp与Land会有所不同?
最佳答案
我相信在多线程访问的情况下。如果您不缓存该引用,则另一个线程可以在您的警卫之后但在您触发之前将其无效。