Lambda , , ( , , , ).
delegate , :
object.Event += delegate { };
, :
object.Event += (sender,args) => { };
/ .
EDIT: (, , ), , hander for Null Object: -
class MyClassThatFiresWithoutTheTrick
{
public event EventHandler MyEvent;
protected virtual void OnMyEvent()
{
var handler = Interlocked.CompareExchange( ref MyEvent, null, null);
if( handler == null)
return;
handler( this, EventArgs.Empty );
}
}
class MyClassThatFiresWithTheTrick
{
public event EventHandler MyEvent = delegate{};
protected virtual void OnMyEvent()
{
MyEvent( this, EventArgs.Empty );
}
}
( , , OnMyEvent, .)