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 einClosed
-Ereignis aufweisen. Verwenden Sie nicht das BenennungsschemaBeforeXxx
/AfterXxx
. - Verwenden Sie kein Präfix oder Suffix für die Ereignisdeklaration für den Typ. Verwenden Sie beispielsweise
Close
anstelle vonOnClose
. - 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