C# Language
Regeln der Namensgebung
Suche…
Einführung
In diesem Thema werden einige grundlegende Namenskonventionen beschrieben, die beim Schreiben in der C # -Sprache verwendet werden. Wie alle Konventionen werden sie nicht vom Compiler durchgesetzt, sie sorgen jedoch für die Lesbarkeit zwischen Entwicklern.
Umfassende .NET Framework-Entwurfsrichtlinien finden Sie unter docs.microsoft.com/dotnet/standard/design-guidelines .
Bemerkungen
Wählen Sie leicht lesbare Bezeichnernamen
Beispielsweise ist eine Eigenschaft mit dem Namen HorizontalAlignment auf Englisch besser lesbar als AlignmentHorizontal.
Bevorzugung der Lesbarkeit gegenüber der Kürze
Der Eigenschaftsname CanScrollHorizontally
ist besser als ScrollableX
(eine obskure Referenz auf die X-Achse).
Vermeiden Sie die Verwendung von Unterstrichen, Bindestrichen oder anderen nicht-alphanumerischen Zeichen.
Verwenden Sie keine ungarische Schreibweise
In ungarischer Notation wird ein Präfix in Bezeichner string strName
, um einige Metadaten über den Parameter zu kodieren, z.
Vermeiden Sie außerdem die Verwendung von Bezeichnern, die mit bereits in C # verwendeten Schlüsselwörtern in Konflikt stehen.
Abkürzungen und Akronyme
Im Allgemeinen sollten Sie keine Abkürzungen oder Akronyme verwenden. Dadurch werden Ihre Namen weniger lesbar. Ebenso ist es schwierig zu wissen, wann davon auszugehen ist, dass ein Akronym weithin bekannt ist.
Kapitalisierungskonventionen
Die folgenden Ausdrücke beschreiben verschiedene Arten von Fallbezeichnern.
Pascal Casing
Der erste Buchstabe des Bezeichners und der erste Buchstabe jedes nachfolgenden verketteten Wortes werden groß geschrieben. Sie können den Pascal-Fall für Bezeichner von drei oder mehr Zeichen verwenden. Zum Beispiel: BackColor
Kamelgehäuse
Der erste Buchstabe eines Bezeichners ist in Kleinbuchstaben und der erste Buchstabe jedes nachfolgenden verketteten Wortes wird großgeschrieben. Zum Beispiel: backColor
Großbuchstaben
Alle Buchstaben in der Kennung werden groß geschrieben. Zum Beispiel: IO
Regeln
Wenn ein Bezeichner aus mehreren Wörtern besteht, verwenden Sie keine Trennzeichen wie Unterstriche ("_") oder Bindestriche ("-") zwischen Wörtern. Verwenden Sie stattdessen ein Häkchen, um den Anfang jedes Wortes anzuzeigen.
In der folgenden Tabelle werden die Regeln für die Großschreibung von Bezeichnern zusammengefasst und Beispiele für die verschiedenen Arten von Bezeichnern gegeben:
Kennung | Fall | Beispiel |
---|---|---|
Lokale Variable | Kamel | carName |
Klasse | Pascal | AppDomain |
Aufzählungstyp | Pascal | ErrorLevel |
Aufzählungswerte | Pascal | Fataler Fehler |
Veranstaltung | Pascal | ValueChanged |
Ausnahmeklasse | Pascal | WebException |
Schreibgeschütztes statisches Feld | Pascal | Rotwert |
Schnittstelle | Pascal | IDisposable |
Methode | Pascal | ToString |
Namensraum | Pascal | System.Drawing |
Parameter | Kamel | Modellname |
Eigentum | Pascal | Hintergrundfarbe |
Weitere Informationen finden Sie auf MSDN .
Schnittstellen
Schnittstellen sollten mit Substantiven oder Nominalphrasen oder Adjektiven benannt werden, die das Verhalten beschreiben. Beispielsweise verwendet IComponent
ein beschreibendes Nomen, ICustomAttributeProvider
eine Nominalphrase und IPersistable
ein Adjektiv.
Schnittstellennamen sollte der Buchstabe I
vorangestellt werden, um anzuzeigen, dass es sich bei dem Typ um eine Schnittstelle handelt, und es sollte der Fall Pascal verwendet werden.
Im Folgenden sind korrekt benannte Schnittstellen:
public interface IServiceProvider
public interface IFormatable
Private Felder
Es gibt zwei gängige Konventionen für private Felder: camelCase
und _camelCaseWithLeadingUnderscore
.
Kamel Fall
public class Rational
{
private readonly int numerator;
private readonly int denominator;
public Rational(int numerator, int denominator)
{
// "this" keyword is required to refer to the class-scope field
this.numerator = numerator;
this.denominator = denominator;
}
}
Kamelhülle mit Unterstrich
public class Rational
{
private readonly int _numerator;
private readonly int _denominator;
public Rational(int numerator, int denominator)
{
// Names are unique, so "this" keyword is not required
_numerator = numerator;
_denominator = denominator;
}
}
Namensräume
Das allgemeine Format für Namespaces lautet:
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>].
Beispiele beinhalten:
Fabrikam.Math
Litware.Security
Wenn einem Namespace-Namen ein Firmenname vorangestellt wird, können Namespaces verschiedener Unternehmen nicht denselben Namen haben.
Aufzählungen
Verwenden Sie einen einzigen Namen für die meisten Enums
public enum Volume
{
Low,
Medium,
High
}
Verwenden Sie einen Plural-Namen für Aufzählungstypen, bei denen es sich um Bitfelder handelt
[Flags]
public enum MyColors
{
Yellow = 1,
Green = 2,
Red = 4,
Blue = 8
}
Anmerkung: FlagsAttribute
einem FlagsAttribute
des FlagsAttribute
.
Fügen Sie nicht "enum" als Suffix hinzu
public enum VolumeEnum // Incorrect
Verwenden Sie nicht den Aufzählungsnamen in jedem Eintrag
public enum Color
{
ColorBlue, // Remove Color, unnecessary
ColorGreen,
}
Ausnahmen
Fügen Sie "Ausnahme" als Suffix hinzu
Benutzerdefinierte Ausnahmename sollten mit "-Exception" versehen werden.
Im Folgenden sind korrekt benannte Ausnahmen:
public class MyCustomException : Exception
public class FooException : Exception