Namen von TypmembernNames of Type Members

Typen bestehen aus Membern: Methoden, Eigenschaften, Ereignisse, Konstruktoren und Felder.Types are made of members: methods, properties, events, constructors, and fields. In den folgenden Abschnitten werden die Richtlinien zum Benennen von Typmembern beschrieben.The following sections describe guidelines for naming type members.

Namen von MethodenNames of Methods

Da Methoden das Ausführen von Aktionen ermöglichen, erfordern die Entwurfsrichtlinien, dass Methodennamen Verben oder Verbalphrasen sind.Because methods are the means of taking action, the design guidelines require that method names be verbs or verb phrases. Mit dieser Richtlinie ist es auch möglich, Methodennamen von Eigenschafts- und Typnamen zu unterscheiden, die Nominal- oder Adjektivphrasen sind.Following this guideline also serves to distinguish method names from property and type names, which are noun or adjective phrases.

✓ DO: Geben Sie Methodennamen an, die Verben oder Verbalphrasen sind.✓ DO give methods names that are verbs or verb phrases.

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

Namen von EigenschaftenNames of Properties

Anders als bei anderen Membern sollten Sie Eigenschaften einen Namen geben, der eine Nominal- oder Adjektivphrase ist.Unlike other members, properties should be given noun phrase or adjective names. Der Grund dafür ist, dass sich eine Eigenschaft auf Daten bezieht, und der Name der Eigenschaft dies widerspiegelt.That is because a property refers to data, and the name of the property reflects that. Eigenschaftennamen werden immer in Pascal-Schreibweise geschrieben.PascalCasing is always used for property names.

✓ DO: Benennen Sie Eigenschaften mit einem Nomen, einer Nominalphrase oder einem Adjektiv.✓ DO name properties using a noun, noun phrase, or adjective.

X DO NOT: Nutzen Sie keine Eigenschaften, die mit dem Namen von „Get“-Methoden übereinstimmen, so wie in folgendem Beispiel dargestellt:X DO NOT have properties that match the name of "Get" methods as in the following example:

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

Dieses Muster gibt normalerweise an, dass die Eigenschaft eigentlich eine Methode sein soll.This pattern typically indicates that the property should really be a method.

Der Name der Sammlungs Eigenschaften mit einem Plural Ausdruck, der die Elemente in der Auflistung beschreibt, anstatt einen Singular Ausdruck, gefolgt von "List" oder "Collection" zu verwenden.✓ DO name collection properties with a plural phrase describing the items in the collection instead of using a singular phrase followed by "List" or "Collection".

✓ DO: Benennen Sie boolesche Eigenschaften mit einem positiven Ausdruck (CanSeek anstelle von CantSeek).✓ DO name Boolean properties with an affirmative phrase (CanSeek instead of CantSeek). Optional können Sie auch boolesche Eigenschaften mit "is", "Can" oder "has" versehen, aber nur an der Stelle, an der der Wert hinzugefügt wird.Optionally, you can also prefix Boolean properties with "Is", "Can", or "Has", but only where it adds value.

✓ CONSIDER: Ziehen Sie in Betracht, einer Eigenschaft den gleichen Namen wie ihrem Typ zu geben.✓ CONSIDER giving a property the same name as its type.

Die folgende Eigenschaft ruft ordnungsgemäß einen Enumerationswert namens Color ab und legt ihn fest. Die Eigenschaft heißt also Color:For example, the following property correctly gets and sets an enum value named Color, so the property is named Color:

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

Namen von EreignissenNames of Events

Ereignisse beziehen sich immer auf Aktionen, also entweder auf eine Aktion, die gerade passiert oder eine, die in der Vergangenheit liegt.Events always refer to some action, either one that is happening or one that has occurred. Deshalb werden Ereignisse mit Verben benannt (wie Methoden auch), und die Verbkonjugation wird genutzt, um den Zeitpunkt anzugeben, wann das Ereignis ausgelöst wird.Therefore, as with methods, events are named with verbs, and verb tense is used to indicate the time when the event is raised.

✓ DO: Benennen Sie Ereignisse mit einem Verb oder einer Verbalphrase.✓ DO name events with a verb or a verb phrase.

Beispiele dafür sind Clicked, Painting, DroppedDown usw.Examples include Clicked, Painting, DroppedDown, and so on.

✓ DO: Geben Sie Ereignissen Namen, die sich auf Vergangenheit und Zukunft beziehen. Verwenden Sie dazu Gegenwarts- und Vergangenheitsformen.✓ DO give events names with a concept of before and after, using the present and past tenses.

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.For example, a close event that is raised before a window is closed would be called Closing, and one that is raised after the window is closed would be called Closed.

X DO NOT: Verwenden Sie keine „Before“- und „After“-Präfixe und -Postfixe, um eine Aktion vor oder nach Ereignissen anzugeben.X DO NOT use "Before" or "After" prefixes or postfixes to indicate pre- and post-events. Verwenden Sie wie oben beschrieben die Gegenwarts- und Vergangenheitsformen.Use present and past tenses as just described.

✓ DO: Benennen Sie Ereignishandler (Delegaten, die als Typen von Ereignissen verwendet werden) mit dem Suffix „EventHandler“, wie in folgendem Beispiel dargestellt:✓ DO name event handlers (delegates used as types of events) with the "EventHandler" suffix, as shown in the following example:

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

✓ DO: Verwenden Sie in Ereignishandlern zwei Parameter mit der Bezeichnung sender und e.✓ DO use two parameters named sender and e in event handlers.

Der sender-Parameter stellt das Objekt dar, das das Ereignis ausgelöst hat.The sender parameter represents the object that raised the event. Der sender-Parameter ist in der Regel vom Typ object, auch wenn es möglich ist, einen spezifischeren Typ zu verwenden.The sender parameter is typically of type object, even if it is possible to employ a more specific type.

✓ DO: Benennen Sie Ereignisargumentklassen mit dem Suffix „EventArgs“.✓ DO name event argument classes with the "EventArgs" suffix.

FeldnamenNames of Fields

Die Richtlinien für die Benennung von Feldern gelten für statische öffentliche und geschützte Felder.The field-naming guidelines apply to static public and protected fields. 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.Internal and private fields are not covered by guidelines, and public or protected instance fields are not allowed by the member design guidelines.

✓ DO: Verwenden Sie die Pascal-Schreibweise in Feldnamen.✓ DO use PascalCasing in field names.

✓ DO: Benennen Sie Felder mit einem Nomen, einer Nominalphrase oder einem Adjektiv.✓ DO name fields using a noun, noun phrase, or adjective.

X DO NOT: Verwenden Sie kein Präfix für Feldnamen.X DO NOT use a prefix for field names.

Verwenden Sie beispielsweise nicht „g_“ oder „s_“, um statische Felder anzugeben.For example, do not use "g_" or "s_" to indicate static fields.

Teile © 2005, 2009 Microsoft Corporation. Alle Rechte vorbehalten.Portions © 2005, 2009 Microsoft Corporation. All rights reserved.

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.Reprinted by permission of Pearson Education, Inc. from Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition by Krzysztof Cwalina and Brad Abrams, published Oct 22, 2008 by Addison-Wesley Professional as part of the Microsoft Windows Development Series.

Siehe auchSee also