C# Language
Convenzioni di denominazione
Ricerca…
introduzione
Questo argomento delinea alcune convenzioni di denominazione di base utilizzate durante la scrittura nel linguaggio C #. Come tutte le convenzioni, non sono applicate dal compilatore, ma assicurano la leggibilità tra gli sviluppatori.
Per le linee guida complete sulla progettazione di framework .NET, consultare docs.microsoft.com/dotnet/standard/design-guidelines .
Osservazioni
Scegli nomi di identificatori facilmente leggibili
Ad esempio, una proprietà denominata HorizontalAlignment è più leggibile in inglese di AlignmentHorizontal.
Favorire la leggibilità per brevità
Il nome della proprietà CanScrollHorizontally
è migliore di ScrollableX
(un riferimento oscuro all'asse X).
Evitare l'uso di caratteri di sottolineatura, trattini o altri caratteri non alfanumerici.
Non usare la notazione ungherese
La notazione ungherese è la pratica di includere un prefisso negli identificatori per codificare alcuni metadati relativi al parametro, come il tipo di dati dell'identificatore, ad esempio string strName
.
Inoltre, evita l'uso di identificatori in conflitto con le parole chiave già utilizzate in C #.
Abbreviazioni e Acronimi
In generale, non si dovrebbero usare abbreviazioni o acronimi; questi rendono i tuoi nomi meno leggibili. Allo stesso modo, è difficile sapere quando è sicuro assumere che un acronimo è ampiamente riconosciuto.
Convenzioni sulla capitalizzazione
I seguenti termini descrivono diversi modi per identificare i casi.
Involucro Pascal
La prima lettera nell'identificatore e la prima lettera di ogni parola concatenata successiva sono in maiuscolo. È possibile utilizzare il caso Pascal per identificatori di tre o più caratteri. Ad esempio: BackColor
Camel Casing
La prima lettera di un identificatore è in minuscolo e la prima lettera di ogni parola concatenata successiva è in maiuscolo. Ad esempio: backColor
Lettere maiuscole
Tutte le lettere nell'identificatore sono in maiuscolo. Ad esempio: IO
Regole
Quando un identificatore è costituito da più parole, non utilizzare separatori, come caratteri di sottolineatura ("_") o trattini ("-"), tra le parole. Invece, usa l'involucro per indicare l'inizio di ogni parola.
La tabella seguente riepiloga le regole di maiuscole per gli identificatori e fornisce esempi per i diversi tipi di identificatori:
Identifier | Astuccio | Esempio |
---|---|---|
Variabile locale | Cammello | carName |
Classe | Pascal | AppDomain |
Tipo di enumerazione | Pascal | ErrorLevel |
Valori di enumerazione | Pascal | Errore fatale |
Evento | Pascal | ValueChanged |
Classe di eccezione | Pascal | WebException |
Campo statico di sola lettura | Pascal | RedValue |
Interfaccia | Pascal | IDisposable |
Metodo | Pascal | Accordare |
Spazio dei nomi | Pascal | System.Drawing |
Parametro | Cammello | typeName |
Proprietà | Pascal | Colore di sfondo |
Ulteriori informazioni possono essere trovate su MSDN .
interfacce
Le interfacce devono essere denominate con nomi o frasi di nomi o aggettivi che descrivono il comportamento. Per esempio IComponent
usa un nome descrittivo, ICustomAttributeProvider
usa una frase nominale e IPersistable
usa un aggettivo.
I nomi dell'interfaccia devono essere preceduti dalla lettera I
, per indicare che il tipo è un'interfaccia e deve essere utilizzato il caso Pascal.
Di seguito sono indicate le interfacce correttamente denominate:
public interface IServiceProvider
public interface IFormatable
Campi privati
Esistono due convenzioni comuni per i campi privati: camelCase
e _camelCaseWithLeadingUnderscore
.
Cassa del cammello
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;
}
}
Cassa del cammello con underscore
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;
}
}
Namespace
Il formato generale per gli spazi dei nomi è:
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>].
Esempi inclusi:
Fabrikam.Math
Litware.Security
Il prefisso dei nomi di spazi dei nomi con il nome di una società impedisce agli spazi dei nomi di società diverse di avere lo stesso nome.
Enums
Usa un nome singolare per la maggior parte degli Enum
public enum Volume
{
Low,
Medium,
High
}
Utilizzare un nome plurale per i tipi Enum che sono campi bit
[Flags]
public enum MyColors
{
Yellow = 1,
Green = 2,
Red = 4,
Blue = 8
}
Nota: aggiungi sempre FlagsAttribute
a un campo Enum di bit.
Non aggiungere 'enum' come suffisso
public enum VolumeEnum // Incorrect
Non usare il nome enum in ciascuna voce
public enum Color
{
ColorBlue, // Remove Color, unnecessary
ColorGreen,
}
eccezioni
Aggiungi 'eccezione' come suffisso
I nomi delle eccezioni personalizzate dovrebbero essere suffissi con "-Exception".
Di seguito sono riportate correttamente le eccezioni:
public class MyCustomException : Exception
public class FooException : Exception