It just means that it applies the attribute to the delegate that supports the event, not the event itself.
Just as property syntax is shorthand, code
event MyDelegate MyEvent;
is actually abbreviated for
MyDelegate _BackingDelegate; event MyDelegate MyEvent { add { lock (this._BackingDelegate) this._BackingDelegate += value; } remove { lock (this._BackingDelegate) this._BackingDelegate -= value; } }
IIRC *, and these attributes apply to _BackingDelegate , not MyEvent .
* Note. I'm not sure if there is a lock statement or not, but I think it does.
source share