È malvisto, quasi sempre in uso generale. Non uso mai "questo" in questo modo.
Le persone lo fanno perché ottengono Intellisense nel proprio editor digitando "questo" e quindi un "punto". Lo vedi anche in un sacco di posti quando i generatori di codice automatici stanno facendo la codifica.
Ora come per la domanda a perché utilizzando "questo" in tutto il codice è una cattiva idea. Prima di tutto, può essere usato come una stampella per coprire la mancanza di una buona convenzione di denominazione. Ad esempio, considero questo blocco di codice come un "horror di codifica":
class Fudge {
public decimal PoundsOfChocolate {get; set;}
Fudge (decimal PoundsOfChocoloate) {
this.PoundsOfChocolate = PoundsOfChocolate;
}
}
Yuck. Meglio usare un concordato convenzione di denominazione:
class Fudge {
public decimal PoundsOfChocolate {get; set;}
Fudge (decimal poundsOfChocoloate) {
PoundsOfChocolate = poundsOfChocolate;
}
}
Perché questo è meglio? Bene, nel caso banale come nell'esempio sopra, non importa molto. Le cose peggiorano quando le tue funzioni si allungano e tu hai variabili private in funzioni complesse che potrebbero entrare in collisione con i tuoi membri.
Inoltre, se si punge il codice con parole chiave "questo", diventa più difficile da leggere poiché il testo è più ripetitivo. Ed è solo più prolisso senza aggiungere semantica. IMO più verbosità senza semantica aggiunta è cattiva. I miei due centesimi. Downvote tutto quello che vuoi.
Ciò non vuol dire che "questo" non ha usi validi. Lontano da esso. Se lo usi per risolvere la differenza tra chiamare un membro base e un membro nell'oggetto corrente, allora ha il suo posto. Ha il suo posto anche nei generatori di codice. Ma come mi ha insegnato il whisky, l'uso eccessivo di qualcosa porta al dolore.
fonte
2010-02-05 11:35:46
Dipende se il tuo IDE evidenzia variabili e campi in modo diverso –
Penso che questa sia una domanda molto soggettiva e non otterrai una risposta definitiva. Per me è tutto sulle preferenze e forse su quali standard di codifica stai lavorando. – David
correlati: http://stackoverflow.com/questions/993352/when-should-i-make-explicit-use-of-the-this-pointer –