This is done due to thread safety and preventing the exception from being thrown if the delegate is turning null.
Consider this code:
if (this.OnStart != null)
{
this.OnStart(this, System.EventArgs.Empty);
}
Between execution ifand execution, the this.OnStartdelegate OnStartcould be processed (possibly changed to null, which will result in an exception).
, , . , . , : , null, , , .