C# Language
Namnkonventioner
Sök…
Introduktion
Detta ämne beskriver några grundläggande namnkonventioner som används vid skrivning på C # -språket. Liksom alla konventioner verkställs de inte av kompilatorn, utan kommer att säkerställa läsbarhet mellan utvecklare.
För omfattande riktlinjer för .NET-ramkonstruktion, se docs.microsoft.com/dotnet/standard/design-guidelines .
Anmärkningar
Välj lättläsbara identifieringsnamn
Till exempel är en egenskap som heter HorizontalAlignment mer läsbar på engelska än AlignmentHorizontal.
Gynnar läsbarhet framför korthet
Egenskapsnamnet CanScrollHorizontally
är bättre än ScrollableX
(en oklar referens till X-axeln).
Undvik att använda understreck, bindestreck eller andra icke-alfanumeriska tecken.
Använd inte ungersk notation
Ungersk notation är praxis att inkludera ett prefix i identifierare för att koda vissa metadata om parametern, till exempel string strName
identifieraren, t.ex. string strName
.
Undvik också att använda identifierare som strider mot nyckelord som redan används inom C #.
Förkortningar och akronymer
I allmänhet bör du inte använda förkortningar eller akronymer; dessa gör dina namn mindre läsbara. På liknande sätt är det svårt att veta när det är säkert att anta att en förkortning är allmänt erkänd.
Kapitaliseringskonventioner
Följande termer beskriver olika sätt att identifiera ärenden.
Pascal Casing
Den första bokstaven i identifieraren och den första bokstaven i varje efterföljande sammanlänkat ord har stora bokstäver. Du kan använda Pascal-fallet för identifierare av tre eller fler tecken. Till exempel: BackColor
Kamelhölje
Den första bokstaven i en identifierare är små bokstäver och den första bokstaven i varje efterföljande sammanlänkat ord har stora bokstäver. Till exempel: backColor
Versal
Alla bokstäver i identifieraren har stora bokstäver. Till exempel: IO
regler
När en identifierare består av flera ord, använd inte separatorer, till exempel understreck ("_") eller bindestreck ("-"), mellan ord. Använd istället hölje för att indikera början på varje ord.
Följande tabell sammanfattar aktiveringsreglerna för identifierare och ger exempel på olika typer av identifierare:
Identifierare | Fall | Exempel |
---|---|---|
Lokal variabel | Kamel | carName |
Klass | Pascal | AppDomain |
Uppräkningstyp | Pascal | errorlevel |
Uppräkningsvärden | Pascal | Allvarligt fel |
Händelse | Pascal | ValueChanged |
Undantagsklass | Pascal | WebException |
Statiskt skrivfält | Pascal | RedValue |
Gränssnitt | Pascal | IDisposable |
Metod | Pascal | Att stränga |
namespace | Pascal | System.Drawing |
Parameter | Kamel | typename |
Fast egendom | Pascal | Bakfärg |
Mer information finns på MSDN .
gränssnitt
Gränssnitt ska namnges med substantiv eller substantivfraser, eller adjektiv som beskriver beteende. Till exempel använder IComponent
ett beskrivande substantiv, ICustomAttributeProvider
använder en substantivfras och IPersistable
använder ett adjektiv.
Gränssnittsnamn bör förinställas med bokstaven I
att indikera att typen är ett gränssnitt och att Pascal-fallet ska användas.
Nedan är korrekt namngivna gränssnitt:
public interface IServiceProvider
public interface IFormatable
Privata fält
Det finns två vanliga konventioner för privata fält: camelCase
och _camelCaseWithLeadingUnderscore
.
Kamelväska
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;
}
}
Kamelfall med understruk
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;
}
}
namnrymder
Det allmänna formatet för namnutrymmen är:
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>].
Exempel inkluderar:
Fabrikam.Math
Litware.Security
Prefixering av namnutrymdsnamn med ett företagsnamn förhindrar namnutrymmen från olika företag från att ha samma namn.
Enums
Använd ett singelnamn för de flesta Enums
public enum Volume
{
Low,
Medium,
High
}
Använd ett flertalsnamn för Enum-typer som är bitfält
[Flags]
public enum MyColors
{
Yellow = 1,
Green = 2,
Red = 4,
Blue = 8
}
Obs! Lägg alltid till FlagsAttribute
till en FlagsAttribute
Enum-typ.
Lägg inte till 'enum' som ett suffix
public enum VolumeEnum // Incorrect
Använd inte enum-namnet i varje post
public enum Color
{
ColorBlue, // Remove Color, unnecessary
ColorGreen,
}
undantag
Lägg till "undantag" som ett suffix
Anpassade undantagsnamn ska vara ifrågasatta med "-Exception".
Nedan anges korrekt undantag:
public class MyCustomException : Exception
public class FooException : Exception