Allgemeine BenennungskonventionenGeneral Naming Conventions

Dieser Abschnitt beschreibt allgemeine Benennungskonventionen, die im Zusammenhang mit der Auswahl der Wörter, die Richtlinien zum Verwenden von Abkürzungen und Akronyme und Empfehlungen zum Vermeiden Sie sprachspezifische Namen.This section describes general naming conventions that relate to word choice, guidelines on using abbreviations and acronyms, and recommendations on how to avoid using language-specific names.

Word-AuswahlWord Choice

✓ DO übersichtlich Bezeichnernamen auswählen.✓ DO choose easily readable identifier names.

Z. B. eine Eigenschaft namens HorizontalAlignment ist Englisch-lesbarer als AlignmentHorizontal.For example, a property named HorizontalAlignment is more English-readable than AlignmentHorizontal.

✓ DO ziehen Sie Lesbarkeit Knappheit zu finden.✓ DO favor readability over brevity.

Der Eigenschaftsname CanScrollHorizontally ist besser als ScrollableX (eine ungewöhnliche Verweis auf die X-Achse).The property name CanScrollHorizontally is better than ScrollableX (an obscure reference to the X-axis).

X DO NOT Unterstriche, Bindestriche oder andere nicht alphanumerischen Zeichen verwenden.X DO NOT use underscores, hyphens, or any other nonalphanumeric characters.

X DO NOT verwenden Ungarischer Notation benannt.X DO NOT use Hungarian notation.

X AVOID Bezeichner, die häufig mit Schlüsselwörtern in Konflikt mit der übrigen Programmiersprachen verwendet.X AVOID using identifiers that conflict with keywords of widely used programming languages.

Entsprechend der Regel 4, von der Common Language Specification (CLS) müssen alle kompatible Sprachen einen Mechanismus bereitstellen, der Zugriff auf benannte Elemente ermöglicht, die ein Schlüsselwort der Sprache als Bezeichner verwenden.According to Rule 4 of the Common Language Specification (CLS), all compliant languages must provide a mechanism that allows access to named items that use a keyword of that language as an identifier. C# verwendet beispielsweise das @-Zeichen als Escapesequenz Mechanismus in diesem Fall.C#, for example, uses the @ sign as an escape mechanism in this case. Allerdings ist es immer noch eine gute Idee, häufige oder gemeinsame Schlüsselwörter zu vermeiden, da es sehr viel schwieriger, eine Methode mit der Escapesequenz als ein ohne diese zu verwenden ist.However, it is still a good idea to avoid common keywords because it is much more difficult to use a method with the escape sequence than one without it.

Verwenden von Abkürzungen und AkronymeUsing Abbreviations and Acronyms

X DO NOT Abkürzungen oder Kontraktionen als Teil des Bezeichnernamen verwenden.X DO NOT use abbreviations or contractions as part of identifier names.

Verwenden Sie z. B. GetWindow statt GetWin.For example, use GetWindow rather than GetWin.

X DO NOT verwenden Sie Akronyme, die nicht weit verbreitete und sogar, wenn sie, falls erforderlich sind.X DO NOT use any acronyms that are not widely accepted, and even if they are, only when necessary.

Vermeiden sprachspezifische NamenAvoiding Language-Specific Names

✓ DO verwenden semantisch interessante Namen anstelle der Language-spezifische Schlüsselwörter für Typnamen.✓ DO use semantically interesting names rather than language-specific keywords for type names.

Z. B. GetLength ist ein besserer Name als GetInt.For example, GetLength is a better name than GetInt.

✓ DO verwenden Sie eine generische CLR-Typnamen, anstatt einen sprachspezifischen Namen, in den seltenen Fällen, wenn ein Bezeichner keine semantische Bedeutung außer seinem Typ aufweist.✓ DO use a generic CLR type name, rather than a language-specific name, in the rare cases when an identifier has no semantic meaning beyond its type.

Z. B. eine Methode, die zum Konvertieren von Int64 heißen ToInt64, nicht ToLong (da Int64 ist ein CLR-Name für die c#-bestimmten Alias long).For example, a method converting to Int64 should be named ToInt64, not ToLong (because Int64 is a CLR name for the C#-specific alias long). Die folgende Tabelle enthält einige Basisdatentypen, die mit der CLR-Typnamen (sowie die entsprechenden Typnamen für c#, Visual Basic und C++).The following table presents several base data types using the CLR type names (as well as the corresponding type names for C#, Visual Basic, and C++).

C#C# Visual BasicVisual Basic C++C++ CLRCLR
sbytesbyte SByteSByte charchar SByteSByte
bytebyte ByteByte unsigned charunsigned char ByteByte
shortshort ShortShort shortshort Int16Int16
ushortushort UInt16UInt16 unsigned shortunsigned short UInt16UInt16
intint IntegerInteger intint Int32Int32
uintuint UInt32UInt32 unsigned intunsigned int UInt32UInt32
longlong LongLong __int64__int64 Int64Int64
ulongulong UInt64UInt64 __int64 ohne Vorzeichenunsigned __int64 UInt64UInt64
floatfloat SingleSingle floatfloat SingleSingle
doubledouble DoubleDouble doubledouble DoubleDouble
boolbool BooleanBoolean boolbool BooleanBoolean
charchar CharChar wchar_twchar_t CharChar
stringstring StringString StringString StringString
objectobject ObjektObject ObjektObject ObjektObject

✓ DO verwenden Sie einen allgemeinen Namen, z. B. value oder item, anstatt wiederholen den Typnamen in den seltenen Fällen, wenn ein Bezeichner keine semantische Bedeutung hat und der Typ des Parameters nicht wichtig ist.✓ DO use a common name, such as value or item, rather than repeating the type name, in the rare cases when an identifier has no semantic meaning and the type of the parameter is not important.

Benennen die neue Versionen der vorhandenen APIsNaming New Versions of Existing APIs

✓ DO einen ähnlichen Namen wie der alte-API verwenden, wenn neue Versionen einer vorhandenen API zu erstellen.✓ DO use a name similar to the old API when creating new versions of an existing API.

Dadurch wird um die Beziehung zwischen der APIs zu markieren.This helps to highlight the relationship between the APIs.

✓ DO bevorzugen Sie ein Suffix anstelle ein Präfix an, dass eine neue Version einer vorhandenen API hinzufügen.✓ DO prefer adding a suffix rather than a prefix to indicate a new version of an existing API.

Dies hilft beim Durchsuchen der Dokumentation, die Ermittlung oder mithilfe von IntelliSense.This will assist discovery when browsing documentation, or using IntelliSense. Die alte Version der API wird in der Nähe der neuen APIs, organisiert werden, da die meisten Browser und IntelliSense Bezeichner in alphabetischer Reihenfolge angezeigt.The old version of the API will be organized close to the new APIs, because most browsers and IntelliSense show identifiers in alphabetical order.

✓ CONSIDER mithilfe eines brandneuen, jedoch aussagekräftigen-Bezeichners, anstatt ein Suffix oder Präfix.✓ CONSIDER using a brand new, but meaningful identifier, instead of adding a suffix or a prefix.

✓ DO ein numerisches Suffix verwenden, um eine neue Version einer vorhandenen API anzugeben, insbesondere, wenn der vorhandene Name der API der einzige Name, die sinnvoll ist (d. h., wenn es sich um einen Industriestandard ist) und wenn jeder sinnvolle hinzufügen Suffix (oder Ändern des Namens) keine app Ropriate-Option.✓ DO use a numeric suffix to indicate a new version of an existing API, particularly if the existing name of the API is the only name that makes sense (i.e., if it is an industry standard) and if adding any meaningful suffix (or changing the name) is not an appropriate option.

X DO NOT verwenden, die "Ex" (oder ähnlich)-Suffix für einen Bezeichner zur Unterscheidung von einer früheren Version der gleichen-API.X DO NOT use the "Ex" (or a similar) suffix for an identifier to distinguish it from an earlier version of the same API.

✓ DO verwenden Sie das Suffix "64", bei der Einführung von Versionen von APIs, die für eine 64-Bit-Ganzzahl (eine lange ganze Zahl) anstelle von 32-Bit-Ganzzahl ausgeführt werden.✓ DO use the "64" suffix when introducing versions of APIs that operate on a 64-bit integer (a long integer) instead of a 32-bit integer. Sie müssen sich nur auf diesen Ansatz verwenden, wenn die vorhandene 32-Bit-API vorhanden ist. Lassen Sie es für neue APIs mit nur einer 64-Bit-Version.You only need to take this approach when the existing 32-bit API exists; don’t do it for brand new APIs with only a 64-bit version.

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

Pearson Education, Inc. über Rechte vorbehalten Framework-Entwurfsrichtlinien vorgestellt: Aufrufkonventionen, Ausdrücke und Muster für die Wiederverwendbare Bibliotheken für .NET, 2. Auflage Krzysztof Cwalina und Brad Abrams, 22. Oktober 2008 von Addison-Wesley Professional als Teil der Microsoft Windows Development-Reihe veröffentlicht.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