Convenzione di denominazione per campi privati / pubblici [duplicato]

5

Ho letto quanto segue su MSDN:

Use Pascal casing for all public member, type, and namespace names consisting of multiple words.

Note that this rule does not apply to instance fields. For reasons that are detailed in the Member Design Guidelines, you should not use public instance fields.

Use camel casing for parameter names.

Bene, dice che non si applica ai campi istanza, quindi cosa si applica ai campi istanza? So che non dovrei usarli, ma se lo faccio, qual è la convenzione corretta? Immagino che sarebbe Pascal, ma non ne sono sicuro ...

    
posta Steven Evers 14.05.2011 - 17:49
fonte

4 risposte

7

Il caso Pascal sembra essere la convenzione.

Guardate gli esempi c # su MSDN, questo è quello che usano.

StyleCop ha tutte le convenzioni di codifica MS: se lasci le impostazioni predefinite, ti dirà quando non le seguirai.

La regola SA1306 afferma che i nomi dei campi dovrebbero iniziare con una lettera minuscola.

    
risposta data 14.05.2011 - 17:51
fonte
5

Il modo in cui li chiamo è:

  • campi privati (non ho quasi mai campi protetti / privati, uso invece proprietà protette / pubbliche): _camelCase
  • campi / proprietà protetti / pubblici: PascalCase

Il motivo per cui ho un trattino di sottolineatura davanti ai campi privati è perché trasferisco i parametri in metodi usando camelCase, quindi l'aggiunta del carattere di sottolineatura è lì solo per evitare conflitti di nomi variabili (poiché generalmente non mi piace usare la parola chiave this all'interno delle classi) .

    
risposta data 16.05.2011 - 16:58
fonte
2

Come menzionato nel testo citato, i campi pubblici non dovrebbero essere usati. Se li usi, usa la stessa convenzione delle proprietà pubbliche = caso Pascal.

Non esiste una vera convenzione per i campi di istanze private perché questi campi non vengono mai esposti. Non ci può essere alcuna collisione tra convenzione e API di terze parti o API MS. La convenzione per nominare campi di istanze private dipende da te, ma dovrebbe essere coerente nell'intero progetto (o in tutti i progetti aziendali).

    
risposta data 16.05.2011 - 15:27
fonte
0

Seguo semplicemente la convenzione come indicato dallo strumento fxcop - Fxcop Pagina MSDN

È un po 'più facile quindi provare a ricordare tutte le regole tutte le volte.

    
risposta data 14.05.2011 - 17:52
fonte

Leggi altre domande sui tag