So che c'è un dibattito/parere sull'utilizzo this
parola chiave o di sottolineatura per quanto riguarda i campi privati / proprietà (e ne parlerò, mi sono bloccato in .NET 2.0)Convenzioni di denominazione in C# - Variabili globali
Personalmente, preferisco this
, ma a volte non è possibile utilizzarlo, ad esempio quando è necessario fare riferimento a una variabile globale da un metodo statico. Bene, allora siamo costretti a usare il carattere di sottolineatura (supponendo che abbiamo solo 2 scelte, this
o underscore). Ciò significa che se la mia classe utilizza metodi statici non è possibile utilizzare this
in tutto il documento.
Ora, ho letto il naming guidelines e utilizzato StyleCop, entrambi preferisco non usare il carattere di sottolineatura, ma il mio Resharper insiste praticamente sull'uso di _.
Non credo sia giusto che una classe usi _ e la classe successiva usino this
semplicemente per adattarsi quando le classi mescolano metodi statici e non statici! Il consiglio qui su SO è quello di mantenere una implementazione/stile, ma non so se questo significa che dovrei ignorare Microsoft (e so che la SM non segue sempre le proprie regole)!
È stato suggerito il prefisso con qualcos'altro, simile all'ungherese ma prefisso con globVariableName dove glob indica globale. Odio questa idea, è troppo su misura e non sarà evidente a nessun altro sviluppatore al di fuori della mia squadra.
Quindi, la mia domanda è: qual è il modo migliore per definire le variabili globali in modo coerente? Dal momento che sono le guide di denominazione, può essere che posso semplicemente ignorare (almeno _ può essere usato in modo coerente ma è sbagliato ignorare il consiglio dei creatori del linguaggio).
In C++ 'm_' era la 'convenzione', congressi della losest senso del termine ... – MoonKnight
Con "variabile globale", suppongo tu intenda una variabile protetta o privata che sia 'static' o' const'. Se è così, vanno con PascalCase, se sono privati / protetti non dovrebbero. Non vedo nessun conflitto lì. – istepaniuk
Non vedo come questo non possa trasformarsi in una discussione estesa. Suggerisco di porre questa domanda su http://programmers.stackexchange.com/ poiché non hai una ** domanda ** specifica sul tuo codice. Devo mettere in discussione il design della tua classe se devi avere una variabile per fare riferimento a un oggetto all'interno di un metodo statico. Sembra essere il metodo statico dovrebbe un nome di variabile che descrive qualsiasi oggetto valido. ** In altre parole, forse l'utilizzo di una variabile globale in un caso come questo è l'intero problema. ** –