[Это результат Лучшая практика: если функции возвращают пустой или пустой объект?, но я стараюсь быть очень общим. ]
Во множестве устаревших (um... production) С++-кодов, которые я видел, существует тенденция писать много NULL (или подобных) проверок для тестовых указателей. Многие из них добавляются ближе к концу цикла выпуска, когда добавление NULL-check обеспечивает быстрое исправление сбоя, вызванного разыменованием указателя, - и не так много времени для исследования.
Чтобы бороться с этим, я начал писать код, в котором вместо ссылочного параметра (const
) вместо (намного) более распространенного метода передачи указателя. Нет указателя, нет желания проверять значение NULL (игнорируя случай, когда на самом деле имеется нулевая ссылка).
В С# присутствует одна и та же "проблема" С++: желание проверить каждую неизвестную ссылку на null
(ArgumentNullException
) и быстро исправить NullReferenceException
, добавив проверку null
.
Мне кажется, один из способов предотвратить это - избегать нулевых объектов, в первую очередь, используя пустые объекты (String.Empty
, EventArgs.Empty
). Другим было бы исключение, а не возврат null
.
Я только начинаю изучать F #, но, похоже, в этой среде гораздо меньше нулевых объектов. Так что, возможно, вам не нужно иметь много ссылок null
, плавающих вокруг?
Я лаяю здесь неправильное дерево?