C# Language
Naamgevingsconventies
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