Re[4]: Code.NotNull только для ссылочных типов
От: rameel https://github.com/rsdn/CodeJam
Дата: 22.02.19 18:05
Оценка: +1
Здравствуйте, Sinix, Вы писали:

S>И получаем возможность писать badsmell вида

S>
S>Code.NotNull(2, "Why not?");
S>


Badsmell писать и сейчас можно
Code.NotNull(new object(), "Why not?");


В плане абусурдности на одной полке. Зато когда надо писать код, упираешься в то, что generic обязан быть классом, либо писать по старинке

Например, расширение dictionary.TryAdd и ему подобные, ключ обязан быть не-null, но написать Code.NotNull мы не можем... Вот и получается, кто в лес, кто по дрова.

S>Мы пишем инфраструктурный код для 99% пользователей, не для единиц спецов. Поэтому чем проще и однозначнее API, тем лучше.


Думается, что человек воспринимающий TKey key == null не запутается и при виде Code.NotNull, скорее наоборот, удивится почему нельзя?

ЗЫ. С другой стороны, у нас в компании все "проаннотиравано", поэтому NotNull-ассертами пользуемся только если ошибка не проявит себя сразу при вызове метода, а вообще ждем C#8 с его nonnullable типами
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.