Я смотрю на предстоящую Visual Studio 2017 .
В разделе « Повышенная производительность» есть образ Visual Studio, используемый для замены всех вхождений var явным типом.
В коде, очевидно, есть несколько проблем, которые Visual Studio определила как «требующие исправления».
Я хотел еще раз проверить мое понимание использования var в C #, поэтому я прочитал статью Эрика Липперта от 2011 года под названием « Использование и неправильное использование неявной типизации» .
Эрик говорит:
- Используйте var, когда вам нужно; когда вы используете анонимные типы.
- Используйте var, когда тип объявления очевиден из инициализатора, особенно если это создание объекта. Это устраняет избыточность.
- Попробуйте использовать var, если код подчеркивает семантическую «бизнес-цель» переменной и преуменьшает «механические» детали ее хранения.
- Используйте явные типы, если это необходимо для правильного понимания и поддержки кода.
- Используйте описательные имена переменных независимо от того, используете ли вы «var». Имена переменных должны представлять семантику переменной, а не детали ее хранения; «DecimalRate» - это плохо; «InterestRate» - это хорошо.
Я думаю, что большая часть использования var в коде, вероятно, в порядке. Я думаю, что было бы хорошо не использовать var для бита, который читает ...
var tweetReady = workouts [ ... ]
... потому что, возможно, это не на 100% сразу, какой это тип, но даже тогда я довольно быстро знаю, что это boolean
.
Использование вар для этой части ...
var listOfTweets = new List<string>();
... выглядит так же, как хорошее использование var, потому что я считаю излишним делать следующее:
List<string> listOfTweets = new List<string>();
Хотя , исходя из того, что Эрик говорит , что переменная должна быть , вероятно , твитов , а не listOfTweets .
Какова будет причина для изменения всего var
использования здесь? Что-то не так с этим кодом, который я пропускаю?
var
здесь в порядке. Вы могли бы изменить один - но даже тогда я думаю, что это действительно не нужно. Зачем менять их все на явный тип?
vars
они были отмечены одинаково; с таким же предупреждающим крестиком рядом с ними и красным подчеркиванием. Предположительно Visual Studio хочет исправить их все одинаково. Если я не ошибаюсь.