Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Summing up, my advice is:
•Use var when you have to; when you are using anonymous types.
•Use var when the type of the declaration is obvious from the initializer, especially if it is an object creation. This eliminates redundancy.
•Consider using var if the code emphasizes the semantic «business purpose» of the variable and downplays the «mechanical» details of its storage.
•Use explicit types if doing so is necessary for the code to be correctly understood and maintained.
•Use descriptive variable names regardless of whether you use «var». Variable names should represent the semantics of the variable, not details of its storage; «decimalRate» is bad; «interestRate» is good.
Суммируя, мой совет таков:
• Используйте var когда вас к этому принуждают; когда вы используете анонимные типы.
• Используйте var когда тип объявления очевиден из инициализатора, особенно если это создание объекта. Это устраняет избыточность.
• Рассмотрите использование var если код подчёркивает смысловое «назначение» переменной и скрывает «механические» детали её хранения.
•Используйте точные типы если это необходимо для понимания и поддержки кода.
•Используйте описательные имена независимо от использования «var». Имена переменных должны представлять смысл переменной, а не детали её хранения; «decimalRate» — плохо; «interestRate» — хорошо.
var нужно использовать в 90% случаев, и она не противоречит правилу AV1520. Да, статья про неявную типизацию, но на этом все. var нужно тогда, когда тип нам не важен и мы можем им пренебречь в пользу читаемости. Неудобно, когда приходится заглядывать в функцию, чтобы понять, какой тип присваивается переменной по результату выполнения этой функции. Неявная типизация — это хорошо, но злоупотреблять не стоит. 
ReadableMayDomainEntityWithLongNameCollection myEntities = new ReadableMayDomainEntityWithLongNameCollection();
В первую очередь мы пишем код для людей.
var A = B;
AV1535 Всегда используйте конструкции if, else, while, for, foreach и case с фигурными скобкамиДа, да и еще раз да! Без скобок эти операторы создают хорошую почву для багов, плюс ухудшается читаемость кода.
AV1540 Старайтесь избегать нескольких объявлений returnДостаточно спорная рекомендация. Несколько return это нормально, только надо располагать их как можно раньше в методе.
AV1575 Не оставляйте закомментированные участки кодаНе соглашусь, нередко закомментированный код — лучшее решение. Однако нужно всегда комментировать, почему тот или иной код закомментирован.
AV1130 Возвращайте IEnumerable или ICollection вместо какой-либо конкретной коллекции И ловите проблемы с memory-traffic из-за того что компилятор не может использовать value-type enumerator при перечислении, да.
Если вы не хотите, чтобы пользователи могли изменять коллекцию
AV1250 Вычисляйте результат LINQ-запроса до того, как вернуть его
AV1025 Классы должны иметь состояние и поведение
AV1540 Старайтесь избегать нескольких объявлений return
AV1702 Для каждого элемента языка используйте соответствующую нотацию
Всегда используйте конструкции if, else, do, while, for и foreach с парными фигурными скобками, даже если без этого можно обойтись
AV2406 Располагайте члены класса в строго определенном порядке
Приватные поля и константы (в #region)
Публичные константы
Публичные read-only статические поля
Фабричные методы
Конструкторы и финализаторы
События
Публичные свойства
Прочие методы и приватные свойства в порядке их вызова
Рекомендации по написанию кода на C# от Aviva Solutions