Richtlinien für die Benennung von Ereignissen

Die folgenden Regeln dienen als Richtlinie für die Benennung von Ereignissen:

  • Verwenden Sie die Pascal-Schreibweise.
  • Verwenden Sie nicht die ungarische Notation.
  • Verwenden Sie für die Namen von Ereignishandlern das EventHandler-Suffix.
  • Geben Sie zwei Parameter mit den Namen sender und e an. Der sender-Parameter stellt das Objekt dar, welches das Ereignis auslöste. Der sender-Parameter hat stets den Typ object, auch wenn ein exakterer Typ verwendet werden könnte. Der mit dem Ereignis verknüpfte Status wird in einer Instanz einer Ereignisklasse mit dem Namen e eingekapselt. Verwenden Sie für den Parametertyp e eine geeignete und exakte Ereignisklasse.
  • Benennen Sie eine Ereignisargumentklasse mit dem EventArgs-Suffix.
  • Es empfiehlt sich u. U., Ereignisse mit einem Verb zu benennen. Ordnungsgemäße Namen für Ereignisse sind z. B. Clicked, Painting und DroppedDown.
  • Verwenden Sie ein Verb in der Verlaufsform (Gerund), um einen Ereignisnamen zu erstellen, der den Zeitpunkt vor dem Ereignis wiedergibt, und ein Verb in der ersten Vergangenheit, um den Zeitpunkt nach dem Ereignis auszudrücken. Beispielsweise sollte ein Close-Ereignis, das abgebrochen werden kann, ein Closing-Ereignis und ein Closed-Ereignis aufweisen. Verwenden Sie nicht das Benennungsschema BeforeXxx/AfterXxx.
  • Verwenden Sie kein Präfix oder Suffix für die Ereignisdeklaration für den Typ. Verwenden Sie beispielsweise Close anstelle von OnClose.
  • Im Allgemeinen empfiehlt es sich, für Typen mit Ereignissen, die in einer abgeleiteten Klasse überschrieben werden können, eine geschützte Methode namens OnXxx bereitzustellen. Diese Methode sollte nur den Ereignisparameter e verwenden, da der Sender stets die Instanz des Typs ist.

Das folgende Beispiel veranschaulicht einen Ereignishandler mit einem geeigneten Namen und Parametern.

Public Delegate Sub MouseEventHandler(sender As Object, e As MouseEventArgs)
[C#]
public delegate void MouseEventHandler(object sender, MouseEventArgs e);

Das folgende Beispiel veranschaulicht eine korrekt benannte Ereignisargumentklasse.

Public Class MouseEventArgs
   Inherits EventArgs 
   Dim x As Integer
   Dim y As Integer

   Public Sub New MouseEventArgs(x As Integer, y As Integer) 
      me.x = x
      me.y = y
   End Sub
      
   Public Property X As Integer
      Get 
         Return x
      End Get
   End Property
      
   Public Property Y As Integer
      Get 
         Return y
      End Get
   End Property
End Class
[C#]
public class MouseEventArgs : EventArgs 
{
   int x;
   int y;
   public MouseEventArgs(int x, int y) 
      { this.x = x; this.y = y; }
   public int X { get { return x; } } 
   public int Y { get { return y; } } 
}

Siehe auch

Entwurfsrichtlinien für die Entwicklung von Klassenbibliotheken | Richtlinien für die Verwendung von Ereignissen