Но если за 3 года люди начинают всюду проверять на null, видять в голове код в другом методе, пишут тесты для 100% покрытия, то я очень рад за этих людей. Честно.
Решил не добавлять, ведь если проверил и заменил на безопасное значение, то все равно проверяешь. Типа string line = null; line = line ?? String.Empty;
И я, кстати, не согласен, что лучше кидать исключение пораньше. Зачастую проще делать чейнинг if (foo is null) return null; Тогда проверка на null будет одна и в том месте, где можно нормально принять решение, а не просто кинуть исключение NRE.
Это очень контекстное, в каждом случае по разному. Вот собираешь ты обьект, конструктор, все дела. И одна из зависимостей конструктора окажется null, и что? Конечно ты кинешь исключение
Я бы бесконечно долго общался, но писать надоело. Если хочешь доказать что-то, замутим вечером zoom, я выслушаю твои доводы, и в чем я не прав. Даже на код посмотрел бы.
А так можно сколько угодно абстрактными примерами кидаться