Namen von Typmembern

Hinweis

Diese Inhalte wurden mit Genehmigung von Pearson Education, Inc. aus Framework Design Guidelines nachgedruckt: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition. Diese Ausgabe wurde 2008 veröffentlicht, und das Buch wurde seitdem in der dritten Ausgabe vollständig überarbeitet. Einige der Informationen auf dieser Seite sind möglicherweise veraltet.

Typen bestehen aus Membern: Methoden, Eigenschaften, Ereignisse, Konstruktoren und Felder. In den folgenden Abschnitten werden die Richtlinien zum Benennen von Typmembern beschrieben.

Namen von Methoden

Da Methoden das Ausführen von Aktionen ermöglichen, erfordern die Entwurfsrichtlinien, dass Methodennamen Verben oder Verbalphrasen sind. Mit dieser Richtlinie ist es auch möglich, Methodennamen von Eigenschafts- und Typnamen zu unterscheiden, die Nominal- oder Adjektivphrasen sind.

✓ GEBEN Sie Methoden Namen, die Verben oder Verbalausdrücke sind.

public class String {
    public int CompareTo(...);
    public string[] Split(...);
    public string Trim();
}

Namen von Eigenschaften

Anders als bei anderen Membern sollten Sie Eigenschaften einen Namen geben, der eine Nominal- oder Adjektivphrase ist. Der Grund dafür ist, dass sich eine Eigenschaft auf Daten bezieht, und der Name der Eigenschaft dies widerspiegelt. Eigenschaftennamen werden immer in Pascal-Schreibweise geschrieben.

✓ BENENNEN Sie Eigenschaften mit einem Substantiv, einem Substantivausdruck oder einem Adjektiv.

❌ Verwenden Sie KEINE Eigenschaften, die mit dem Namen von Get-Methoden übereinstimmen, wie im folgendem Beispiel gezeigt:

public string TextWriter { get {...} set {...} } public string GetTextWriter(int value) { ... }

Dieses Muster gibt normalerweise an, dass die Eigenschaft eigentlich eine Methode sein soll.

✓ BENENNEN Sie Sammlungseigenschaften mit einem Ausdruck im Plural, mit dem die Elemente in der Sammlung beschrieben werden, anstatt mit einem Ausdruck im Singular, gefolgt von „List“ oder „Collection“.

✓ BENENNEN Sie boolesche Eigenschaften mit einem positiven Ausdruck (CanSeek anstelle von CantSeek). Optional können Sie booleschen Eigenschaften auch „Is“, „Can“ oder „Has“ als Präfix voranstellen, jedoch nur, wo es einen Sinn ergibt.

✓ ZIEHEN SIE IN BETRACHT, einer Eigenschaft den gleichen Namen wie ihrem Typ zu geben.

Die folgende Eigenschaft ruft ordnungsgemäß einen Enumerationswert namens Color ab und legt ihn fest. Die Eigenschaft heißt also Color:

public enum Color {...}
public class Control {
    public Color Color { get {...} set {...} }
}

Namen von Ereignissen

Ereignisse beziehen sich immer auf Aktionen, also entweder auf eine Aktion, die gerade passiert oder eine, die in der Vergangenheit liegt. Deshalb werden Ereignisse mit Verben benannt (wie Methoden auch), und die Verbkonjugation wird genutzt, um den Zeitpunkt anzugeben, wann das Ereignis ausgelöst wird.

✓ BENENNEN Sie Ereignisse mit einem Verb oder einem Verbalausdruck.

Beispiele dafür sind Clicked, Painting, DroppedDown usw.

✔️ BENENNEN Sie Ereignisse mit einem Konzept von „vorher“ und „nachher“, indem Sie Gegenwarts- und Vergangenheitsformen verwenden.

Beispielsweise wird ein Schließereignis, das ausgelöst wird, bevor ein Fenster geschlossen wird, als Closing bezeichnet. Ein Ereignis, das nach dem Schließen des Fensters ausgelöst wird, wird als Closed bezeichnet.

❌ Verwenden Sie keine Before- und After-Präfixe oder -Postfixe, um eine Aktion vor oder nach Ereignissen anzugeben. Verwenden Sie wie oben beschrieben die Gegenwarts- und Vergangenheitsformen.

✓ BENENNEN Sie Ereignishandler (Delegaten, die als Typen von Ereignissen verwendet werden) mit dem Suffix „EventHandler“, wie in folgendem Beispiel gezeigt:

public delegate void ClickedEventHandler(object sender, ClickedEventArgs e);

✓ VERWENDEN Sie in Ereignishandlern zwei Parameter mit der Bezeichnung sender und e.

Der sender-Parameter stellt das Objekt dar, das das Ereignis ausgelöst hat. Der sender-Parameter ist in der Regel vom Typ object, auch wenn es möglich ist, einen spezifischeren Typ zu verwenden.

✓ BENENNEN Sie Ereignisargumentklassen mit dem Suffix „EventArgs“.

Feldnamen

Die Richtlinien für die Benennung von Feldern gelten für statische öffentliche und geschützte Felder. Interne und private Felder sind nicht Gegenstand von Richtlinien, und öffentliche oder geschützte Instanzfelder sind laut den Entwurfsrichtlinien für Member nicht zulässig.

✓ VERWENDEN Sie die PascalCasing-Konvention in Feldnamen.

✓ BENENNEN Sie Felder mit einem Substantiv, einem Substantivausdruck oder einem Adjektiv.

❌ Verwenden Sie KEIN Präfix für Feldnamen.

Verwenden Sie beispielsweise nicht „g_“ oder „s_“, um statische Felder anzugeben.

Teile ©2005, 2009 Microsoft Corporation. Alle Rechte vorbehalten.

Nachdruck mit Genehmigung von Pearson Education, Inc aus Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition von Krzysztof Cwalina und Brad Abrams, veröffentlicht am 22. Oktober 2008 durch Addison-Wesley Professional als Teil der Microsoft Windows Development Series.

Weitere Informationen