Ai vecchi tempi, abbiamo fatto la notazione ungherese. Questo è ora considerato passé e per la maggior parte non lo uso più, ma trovo ancora l'uso del m_
prefisso per indicare i campi dei membri.
Per me, se sto leggendo il codice di qualcun altro, e vedo questo:
count = 3;
Presumo che count
sia una variabile locale per quella funzione e sto facendo qualcosa che verrà usato altrove nella funzione; se vedo questo:
m_count = 3;
Mi rendo subito conto che sto aggiornando lo stato dell'oggetto.
Le linee guida di stile Microsoft dicono che è il modo sbagliato di fare le cose. Dovrei nominare i miei campi non pubblici esattamente come variabili temporanee definite all'interno della funzione. No m_
, nemmeno un semplice trattino basso.
Sì, possiamo definire il nostro stile di codifica, ma poi devo lottare con vari strumenti di analisi del codice statico, per convincerli che il nostro modo di fare le cose è OK.
Sono felice di cambiare allo stile di Microsoft, ma mi piacerebbe sapere perché le cose sono come sono.
Perché ora è considerato male poter dire se una variabile è funzione locale o un membro?
PS Questo è molto simile a Quali sono le migliori pratiche attualmente considerate per quanto riguarda la parola chiave "this" davanti al campo e i metodi in c #? , ma sto chiedendo di m_
nothis.
PPS Vedi anche Perché Microsoft ha fatto parametri, variabili locali e campi privati hanno la stessa convenzione di denominazione?
count
non è apparso dal nulla in quanto non è stato dichiarato nel metodo. Francamente l'argomento "fuori dall'IDE" è DAVVERO debole. Soprattutto perché ci sono persino strumenti di revisione del codice che funzionano nell'IDE.
this
parola chiave? Non potresti riferirti ai membri che usanothis
, comethis.count
?