A mio parere, la "best practice" qui è, "non lo facciamo." Se mi imbatto in questo codice che sto esaminando, lo contrassegno immediatamente. Avere due variabili che differiscono solo per caso è un equivoco che aspetta solo di accadere. È troppo facile per un programmatore di manutenzione venire avanti mesi o anni dopo e inavvertitamente fare un asserzione a myThing
invece di MyThing
.
aggiunto in seguito:
Un commentatore ha chiesto per il mio suggerimento di sostituire la convenzione di denominazione/minuscole superiore. Per questo ho bisogno di un esempio concreto. Diciamo che avete un semplice Book
classe che ha una sola proprietà: Title
:
public class Book
{
public string Title { get; private set; }
}
Ora è necessario un costruttore. Una convenzione comune è quello di utilizzare una versione minuscola della proprietà:
public Book(string title)
{
Title = title;
}
Oppure, se si vuole fare in modo non c'è alcuna ambiguità: this.Title = title
.
Si può fare l'argomento che questo è bene nei costruttori. E potrebbe essere, se tutti i costruttori fossero così semplici. Ma la mia esperienza è stata che quando un costruttore va oltre poche righe, la distinzione tra Title
e title
si perde. Il problema peggiora quando parli di metodi diversi dai costruttori. Ad ogni modo, hai bisogno di una convenzione diversa.
Cosa usare? Ho variamente usato e visto le abbreviazioni usate nei parametri: ttl
, ad esempio.O qualcosa come bookTitle
, che è più descrittivo quando si utilizza Intellisense. Secondo me, o è preferibile la convenzione di usare un nome che differisce solo caso per caso.
fonte
2009-09-30 17:26:24
StyleCop "incoraggia fortemente" l'uso di "questo" –
@ 280Z28, StyleCop * sempre * incoraggia l'uso di 'this', o solo nei casi in cui vi è una variabile locale che differisce dal caso da solo? – devuxer
Sono stato in negozi che fanno entrambe le cose: rimuovilo o imponi l'inclusione di esso. In entrambi i casi non mi sento molto bene a riguardo :) – womp