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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow