Pull to refresh
7
0
Сергей Русских @sergey_russkih89

C# developer

Send message

Отличная шпаргалка по фреймворку! Добавил в закладки.

Хотел бы еще раз подчеркнуть, что такое поведение должно быть ожидаемым. Собственно, это главный критерий
Если речь идет именно о возвращении null вместо пустой строки в качестве Null Object, то я соглашусь
Спасибо, обязательно почитаю. Насчет добавить — не имею морального права. Я всего лишь переводчик, а не автор. По результатам обсуждения этой статьи обязательно напишу автору замечания. И если он их примет, внесу изменения
Рекомендация AV1520 гласит, что в этом случае лучше использовать var т.к. тип переменной очевиден из инициализатора. Даже пример приведен. Липперт этот случай также упомянул в своей статье. Не утрируйте.
Речь не идет об исключительной ситуации. Речь о ситуации, когда возвращаемый результат может быть пустым. Например, метод вернул пустой список пользователей.

Эта рекомендация напрямую соотносится с «Правилом наименьшего удивления» (The Principle of Least Surprise). Если метод возвращает строку то, как ни странно, он и должен всегда возвращать строку. Если коллекцию — результатом выполнения всегда должна быть коллекция. Код должен иметь то поведение, которое от него ожидают
В случае с null можно получить NullReferenceException. Использование паттерна Null Object может быть хорошей альтернативой
Не проще ли, когда для этого достаточно взгляда?
Спасибо! Поправил

При составлении этих рекомендаций автор в первую очередь опирался на личный опыт и свое видение правильного кода. Как вы могли заметить, некоторые из них несколько субъективны. Решение, каким стандартам следует следовать, должны принимать именно вы исходя из ситуации
В статье не утверждается, что var нужно использовать в 90% случаев, и она не противоречит правилу AV1520. Да, статья про неявную типизацию, но на этом все.

В первую очередь мы пишем код для людей. И этот код должен быть понятным. Следовательно, использовать var нужно тогда, когда тип нам не важен и мы можем им пренебречь в пользу читаемости. Неудобно, когда приходится заглядывать в функцию, чтобы понять, какой тип присваивается переменной по результату выполнения этой функции. Неявная типизация — это хорошо, но злоупотреблять не стоит.
В этом же правиле внизу
Заметка: Если вы используете .Net 4.5, вы также можете применять IReadOnlyCollection, IReadOnlyList или IReadOnlyDictionary<TKey, TValue>
Если вы не хотите, чтобы пользователи могли изменять коллекцию
Не вводите в заблуждение, в статье Ерика Липперта именно это и написано

Information

Rating
Does not participate
Location
Пермь, Пермский край, Россия
Date of birth
Registered
Activity