- 10/22/2008
- 2 minuti per leggere
-
- K
- n
- B
- D
- n
-
+10
Le linee guida di questo capitolo stabiliscono un semplice metodo per l’uso del caso che, se applicate coerentemente, rendono gli identificatori per tipi, membri e parametri facili da leggere.
Regole di capitalizzazione per gli identificatori
Per differenziare le parole in un identificatore, metti in maiuscolo la prima lettera di ogni parola nell’identificatore. Non usare underscore per differenziare le parole, o per questo, da nessuna parte negli identificatori. Ci sono due modi appropriati per capitalizzare gli identificatori, a seconda dell’uso dell’identificatore:
-
PascalCasing
-
camelCasing
La convenzione PascalCasing, usata per tutti gli identificatori eccetto i nomi dei parametri, capitalizza il primo carattere di ogni parola (inclusi gli acronimi di lunghezza superiore a due lettere), come mostrato nei seguenti esempi:
PropertyDescriptor
HtmlTag
Un caso speciale è fatto per gli acronimi di due lettere in cui entrambe le lettere sono maiuscole, come mostrato nel seguente identificatore:
IOStream
La convenzione camelCasing, usata solo per i nomi di parametri, capitalizza il primo carattere di ogni parola tranne la prima, come mostrato nei seguenti esempi. Come mostra anche l’esempio, gli acronimi di due lettere che iniziano un identificatore in camelCasing sono entrambi minuscoli.
propertyDescriptor
ioStream
htmlTag
✔️ Usate il PascalCasing per tutti i nomi di membri pubblici, tipi e namespace che consistono di più parole.
✔️ Usate il camelCasing per i nomi dei parametri.
La seguente tabella descrive le regole di capitalizzazione per diversi tipi di identificatori.
Identifier | Casing | Example |
---|---|---|
Namespace | Pascal | namespace System.Security { ... } |
Type | Pascal | public class StreamReader { ... } |
Interface | Pascal | public interface IEnumerable { ... } |
Metodo | Pascal | public class Object { public virtual string ToString(); } |
Proprietà | Pascal | public class String { public int Length { get; } } |
Evento | Pascal | public class Process { public event EventHandler Exited; } |
Field | Pascal | public class MessageQueue { public static readonly TimeSpan InfiniteTimeout; } public struct UInt32 { public const Min = 0; } |
Valore Enum | Pascal | public enum FileMode { Append, ... } |
Parametro | Camel | public class Convert { public static int ToInt32(string value); } |
Capitalizzazione di parole composte e termini comuni
Molti termini composti sono trattati come parole singole ai fini della capitalizzazione.
❌ NON mettere in maiuscolo ogni parola nelle cosiddette parole composte in forma chiusa.
Sono parole composte scritte come una sola parola, come endpoint. Per lo scopo delle linee guida sul casing, trattare una parola composta in forma chiusa come una parola singola. Usa un dizionario corrente per determinare se una parola composta è scritta in forma chiusa.
Pascal | Camel | Non |
---|---|---|
BitFlag |
bitFlag |
Bitflag |
Callback |
callback |
CallBack |
Canceled |
canceled |
Cancelled |
DoNot |
doNot |
Don't |
Email |
email |
EMail |
Endpoint |
endpoint |
EndPoint |
FileName |
fileName |
Filename |
Gridline |
gridline |
GridLine |
Hashtable |
hashtable |
HashTable |
Id |
id |
ID |
Indexes |
indexes |
Indices |
LogOff |
logOff |
LogOut |
LogOn |
logOn |
LogIn |
Metadata |
metadata |
MetaData, metaData |
Multipanel |
multipanel |
MultiPanel |
Multiview |
multiview |
MultiView |
Namespace |
namespace |
NameSpace |
Ok |
ok |
OK |
Pi |
pi |
PI |
Placeholder |
placeholder |
PlaceHolder |
SignIn |
signIn |
SignOn |
SignOut |
signOut |
SignOff |
UserName |
userName |
Username |
WhiteSpace |
whiteSpace |
Whitespace |
Writable |
writable |
Writeable |
Case Sensitivity
I linguaggi che possono girare sul CLR non sono tenuti a supportare la sensibilità al maiuscolo/minuscolo.sensibilità, anche se alcuni lo fanno. Anche se la vostra lingua la supporta, altre lingue che potrebbero accedere al vostro framework non lo fanno. Qualsiasi API accessibile dall’esterno, quindi, non può basarsi solo sul caso per distinguere tra due nomi nello stesso contesto.
❌ NON supporre che tutti i linguaggi di programmazione siano sensibili alle maiuscole e alle minuscole. Non lo sono. I nomi non possono differire solo in base alle maiuscole e alle minuscole.
Portate © 2005, 2009 Microsoft Corporation. Tutti i diritti riservati.
Ristampato con il permesso di Pearson Education, Inc. da Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition by Krzysztof Cwalina and Brad Abrams, published Oct 22, 2008 by Addison-Wesley Professional as part of the Microsoft Windows Development Series.
See also
- Framework Design Guidelines
- Naming Guidelines