Я завжди ініціалізував свої рядки до NULL, маючи на увазі, що NULL означає відсутність значення та "" або String.Empty - це дійсне значення. Останнім часом я бачив більше прикладів коду, де String.Empty вважається значенням за замовчуванням або не представляє значення. Це здається мені дивним, коли щойно додані нульові типи в c # здається, ми робимо кроки назад за допомогою рядків, не використовуючи NULL для позначення "Без значення".
Що ви використовуєте як ініціалізатор за замовчуванням і чому?
Редагувати: Грунтуючись на відповідях, я розвиваю подальші думки
Уникнення поводження з помилками Якщо значення не повинно бути нульовим, чому воно встановилося
NULL
в першу чергу? Можливо, було б краще визначити помилку в місці, де вона виникає, а не приховати її через решту вашої бази коду?Уникнення нульових перевірок Якщо ви втомилися робити нульові перевірки в коді, чи не було б краще абстрагувати нульові чеки? Можливо, оберніть (або розтягніть!) Рядкові методи, щоб зробити їх
NULL
безпечними? Що трапиться, якщо ви постійно користуєтесь,String.Empty
а нуль працює, це входить у вашу систему, ви все одно починаєте додаватиNULL
чеки?
Не можу не повернутись до думки, що це лінь. Будь-яка DBA ударить вас дев'ятьма способами безглуздо, якби ви використовували '' замість null
його бази даних. Я думаю, що ті ж принципи застосовуються і в програмуванні, і повинен бути хтось, хто б'є по голові тих, хто використовує, String.Empty
а не NULL
представляє ніякої цінності.
Пов’язані запитання