Sto guardando il prossimo Visual Studio 2017 .
Nella sezione intitolata Boosted Productivity c'è un'immagine di Visual Studio utilizzata per sostituire tutte le occorrenze di var con il tipo esplicito.
Apparentemente il codice presenta diversi problemi che Visual Studio ha identificato come "da correggere".
Volevo ricontrollare la mia comprensione dell'uso di var in C #, quindi ho letto un articolo del 2011 di Eric Lippert intitolato Usi e abusi della tipizzazione implicita .
Eric dice:
- Usa var quando devi; quando si utilizzano tipi anonimi.
- Utilizzare var quando il tipo di dichiarazione è evidente dall'inizializzatore, specialmente se si tratta di una creazione di oggetti. Questo elimina la ridondanza.
- Prendi in considerazione l'uso di var se il codice enfatizza lo "scopo commerciale" semantico della variabile e minimizza i dettagli "meccanici" della sua memoria.
- Utilizzare tipi espliciti se è necessario farlo per comprendere e conservare correttamente il codice.
- Utilizzare nomi di variabili descrittivi indipendentemente dal fatto che si usi "var". I nomi delle variabili dovrebbero rappresentare la semantica della variabile, non i dettagli della sua memorizzazione; "DecimalRate" è errato; "InterestRate" è buono.
Penso che la maggior parte dell'utilizzo var nel codice sia probabilmente ok. Penso che sarebbe ok non usare var per il bit che legge ...
var tweetReady = workouts [ ... ]
... perché forse non è immediato al 100% che tipo sia, ma anche allora so abbastanza rapidamente che è un boolean
.
L' uso var per questa parte ...
var listOfTweets = new List<string>();
... mi sembra esattamente un buon uso di var perché penso che sia ridondante fare quanto segue:
List<string> listOfTweets = new List<string>();
Sebbene sulla base di ciò che Eric dice, la variabile dovrebbe probabilmente essere tweet piuttosto che listOfTweets .
Quale sarebbe la ragione per cambiare tutto l' var
uso qui? C'è qualcosa di sbagliato in questo codice che mi manca?
var
qui vadano bene. Potresti cambiarne uno, ma anche allora penso che non sia davvero necessario. Perché cambiarli tutti in tipo esplicito?
vars
sono stati contrassegnati allo stesso modo; con la stessa croce ammonitrice accanto a loro e una sottolineatura rossa. Presumibilmente Visual Studio vuole correggerli tutti allo stesso modo. A meno che non mi sbagli.