C# allows us to create custom event accessors.
Action _custom;
public event Action Custom
{
add { _custom = (Action)Delegate.Combine( _custom, value ); }
The implementation of an event is a compiler implementation detail, and differs between compilers (MS c# 4 has a different implementation to MS c# < 4, and even the MS and ECMA specifications disagree).
Personally, I'd say: if you need to access the backing field via reflection, you probably aren't using events correctly.