Patrzę na nadchodzące Visual Studio 2017 .
W sekcji zatytułowanej Zwiększona wydajność znajduje się obraz Visual Studio używany do zastąpienia wszystkich wystąpień var jawnym typem.
Kod najwyraźniej ma kilka problemów, które Visual Studio zidentyfikowało jako „wymaga naprawy”.
Chciałem dokładnie sprawdzić moje rozumienie użycia var w C #, więc przeczytałem artykuł z 2011 roku autorstwa Erica Lipperta zatytułowany Zastosowania i niewłaściwe użycie niejawnego pisania .
Eric mówi:
- Użyj var, kiedy musisz; gdy używasz anonimowych typów.
- Użyj var, gdy typ deklaracji jest oczywisty z inicjalizatora, szczególnie jeśli jest to tworzenie obiektu. To eliminuje redundancję.
- Rozważ użycie var, jeśli kod podkreśla semantyczny „cel biznesowy” zmiennej i lekceważy „mechaniczne” szczegóły jej przechowywania.
- Użyj jawnych typów, jeśli jest to konieczne do poprawnego zrozumienia i utrzymania kodu.
- Używaj opisowych nazw zmiennych niezależnie od tego, czy używasz „var”. Nazwy zmiennych powinny reprezentować semantykę zmiennej, a nie szczegóły jej przechowywania; „DecimalRate” jest złe; „Odsetki” są dobre.
Myślę, że większość użycia var w kodzie jest prawdopodobnie w porządku. Myślę, że byłoby dobrze nie używać var dla bitu, który czyta ...
var tweetReady = workouts [ ... ]
... bo może nie jest w 100% natychmiastowy, jaki to typ, ale nawet wtedy dość szybko wiem, że to jest boolean
.
Var Wykorzystanie tej części ...
var listOfTweets = new List<string>();
... wygląda mi dokładnie na dobre użycie var, ponieważ uważam, że jest zbyteczne wykonywanie następujących czynności:
List<string> listOfTweets = new List<string>();
Mimo że na podstawie tego, co mówi Eric, zmienna powinna być raczej tweetami niż listOfTweetami .
Jaki byłby powód zmiany całego var
wykorzystania tutaj? Czy coś jest nie tak z tym kodem, którego mi brakuje?
var
tutaj są w porządku. Możesz ewentualnie zmienić jeden - ale nawet wtedy myślę, że nie jest to naprawdę konieczne. Po co zmieniać je wszystkie na wyraźne?
vars
zostały oznaczone w ten sam sposób; z tym samym ostrzegawczym krzyżem obok nich i czerwonym podkreśleniem. Przypuszczalnie Visual Studio chce je wszystkie poprawić w ten sam sposób. Chyba że się mylę.