Zoeken…


Invoering

In dit onderwerp worden enkele basisconventies voor naamgeving beschreven die worden gebruikt bij het schrijven in de taal C #. Zoals alle conventies, worden ze niet afgedwongen door de compiler, maar zorgen ze voor leesbaarheid tussen ontwikkelaars.

Zie docs.microsoft.com/dotnet/standard/design-guidelines voor uitgebreide richtlijnen voor het ontwerpen van .NET framework.

Opmerkingen

Kies gemakkelijk leesbare identificatienamen

Een eigenschap met de naam HorizontalAlignment is bijvoorbeeld beter leesbaar in het Engels dan AlignmentHorizontal.

Voorkeur leesbaarheid boven beknoptheid

De eigenschapsnaam CanScrollHorizontally is beter dan ScrollableX (een obscure verwijzing naar de X-as).

Gebruik geen onderstrepingstekens, koppeltekens of andere niet-alfanumerieke tekens.

Gebruik geen Hongaarse notatie

Hongaarse notatie is de praktijk van het opnemen van een voorvoegsel in ID's om bepaalde metagegevens over de parameter te coderen, zoals het gegevenstype van de ID, bijvoorbeeld string strName .

Vermijd ook het gebruik van id's die conflicteren met zoekwoorden die al in C # worden gebruikt.

Afkortingen en acroniemen

Over het algemeen dient u geen afkortingen of acroniemen te gebruiken; deze maken uw namen minder leesbaar. Evenzo is het moeilijk om te weten wanneer het veilig is om aan te nemen dat een acroniem algemeen wordt erkend.

Kapitalisatieconventies

De volgende termen beschrijven verschillende manieren om id's te identificeren.

Pascal Casing

De eerste letter in de identificatie en de eerste letter van elk volgend aaneengeschakeld woord worden met een hoofdletter geschreven. U kunt het geval Pascal gebruiken voor identifiers van drie of meer tekens. Bijvoorbeeld: BackColor

Kameelomhulsel

De eerste letter van een ID is kleine letter en de eerste letter van elk volgend aaneengeschakeld woord wordt met een hoofdletter geschreven. Bijvoorbeeld: backColor

hoofdletters

Alle letters in de identificatie worden in hoofdletters geschreven. Bijvoorbeeld: IO


Reglement

Als een ID uit meerdere woorden bestaat, gebruik dan geen scheidingstekens, zoals onderstrepingstekens ("_") of koppeltekens ("-"), tussen woorden. Gebruik in plaats daarvan een omhulsel om het begin van elk woord aan te geven.

De volgende tabel geeft een overzicht van de regels voor het gebruik van hoofdletters voor id's en geeft voorbeelden voor de verschillende typen id's:

Identifier Geval Voorbeeld
Lokale variabele Kameel carName
Klasse Pascal AppDomain
Opsommingstype Pascal ErrorLevel
Opsommingswaarden Pascal Fatale fout
Evenement Pascal ValueChanged
Uitzonderingsklasse Pascal WebException
Alleen-lezen statisch veld Pascal RedValue
Koppel Pascal IDisposable
Methode Pascal ToString
namespace Pascal System.Drawing
Parameter Kameel typeName
Eigendom Pascal BackColor

Meer informatie is te vinden op MSDN .

interfaces

Interfaces moeten worden benoemd met zelfstandige naamwoorden of zelfstandig naamwoord-zinnen of bijvoeglijke naamwoorden die gedrag beschrijven. IComponent gebruikt bijvoorbeeld een beschrijvend zelfstandig naamwoord, ICustomAttributeProvider gebruikt een zelfstandig naamwoordzin en IPersistable gebruikt een bijvoeglijk naamwoord.

Interfacenamen moeten worden voorafgegaan door de letter I , om aan te geven dat het type een interface is, en het geval van Pascal moet worden gebruikt.

Hieronder staan correct genoemde interfaces:

public interface IServiceProvider
public interface IFormatable

Privé velden

Er zijn twee algemene conventies voor camelCase : camelCase en _camelCaseWithLeadingUnderscore .

Kamelengeval

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;
    }
}

Kameelhoes met onderstrepingsteken

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;
    }
}

namespaces

Het algemene formaat voor naamruimten is:

<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>].

Voorbeelden hiervan zijn:

Fabrikam.Math
Litware.Security

Voorvoegsels met naamruimtenamen met een bedrijfsnaam voorkomen dat naamruimten van verschillende bedrijven dezelfde naam hebben.

enums

Gebruik een enkele naam voor de meeste Enums

public enum Volume
{
   Low,
   Medium,
   High
}

Gebruik een meervoudsnaam voor Enum-typen die bitvelden zijn

[Flags]
public enum MyColors
{
    Yellow = 1,
    Green = 2,
    Red = 4,
    Blue = 8
}

Opmerking: voeg altijd het FlagsAttribute aan een FlagsAttribute Enum type.

Voeg 'enum' niet toe als achtervoegsel

public enum VolumeEnum // Incorrect

Gebruik niet de opsommingsnaam in elk item

public enum Color
{
    ColorBlue, // Remove Color, unnecessary
    ColorGreen,
}

Uitzonderingen

Voeg 'uitzondering' toe als een achtervoegsel

Aangepaste uitzonderingsnamen moeten worden gevolgd door "-Exception".

Hieronder staan correct genoemde uitzonderingen:

public class MyCustomException : Exception
public class FooException : Exception


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow