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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow