C #: Ereignis mit Explizität add / remove! = Typisches Ereignis?

Ich habe einen generischen Event-Handler deklariert

public delegate void EventHandler();

zu der ich die Erweiterungsmethode 'RaiseEvent' hinzugefügt habe:

public static void RaiseEvent(this EventHandler self)        {
   if (self != null) self.Invoke();
}

Wenn ich das Ereignis mit der typischen Syntax definiere

public event EventHandler TypicalEvent;

dann kann ich die erweiterungsmethode ohne probleme aufrufen:

TypicalEvent.RaiseEvent();

Aber wenn ich das Ereignis mit expliziter Add / Remove-Syntax definiere

private EventHandler _explicitEvent;
public event EventHandler ExplicitEvent {
   add { _explicitEvent += value; } 
   remove { _explicitEvent -= value; }
}

In diesem Fall ist die Erweiterungsmethode für das Ereignis nicht vorhanden, das mit der expliziten Add / Remove-Syntax definiert wurde:

ExplicitEvent.RaiseEvent(); //RaiseEvent() does not exist on the event for some reason

Und wenn ich zum Ereignis gehe, um den Grund zu sehen, heißt es:

Das Ereignis 'ExplicitEvent' kann nur auf der linken Seite von + = oder - = angezeigt werden

Warum sollte sich ein Ereignis, das mit der typischen Syntax definiert wurde, von einem Ereignis unterscheiden, das mit der expliziten Add / Remove-Syntax definiert wurde, und warum funktionieren Erweiterungsmethoden mit letzterer nicht?

EDIT: Ich stellte fest, dass ich es umgehen kann, indem ich den privaten Event-Handler direkt benutze:

_explicitEvent.RaiseEvent();

Aber ich verstehe immer noch nicht, warum ich das Ereignis nicht direkt wie das mit der typischen Syntax definierte Ereignis verwenden kann. Vielleicht kann mich jemand aufklären.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage