Всегда ли нормально не инициализировать значение, если вы только установили его значение по умолчанию?
Resharper просто запросил меня в этой строке кода:
private static bool shouldWriteToDatabase = false;
указывающий, что я не должен говорить "= false", потому что bools, по-видимому, по умолчанию false в С#. Я программировал на С# более полутора лет и никогда не знал об этом. Я думаю, это просто проскользнуло сквозь трещины, но это оставляет мне интересно, какая хорошая практика.
Я работаю над тем, что значения по умолчанию понимаются всеми? Это приведет к созданию более чистого кода, но вызывает неоднозначность, если другой программист не знает значения по умолчанию.
Ответы
Ответ 1
Лично я думаю:
- Хорошо быть явным, если ваш код зависит от значения intial.
- Если ваш код не полагается на начальное значение, его отсутствие будет иметь больше смысла и загромождать код меньше.
Однако я не думаю, что Resharper может легко обнаружить разницу между этими двумя ситуациями.
Ответ 2
Я единственный, кто думает, что = false;
просто не загромождает код? Как разработчик, который поддерживает приложения, в основном написанные другими, явное понимание того, что вы имеете в виду, может быть очень полезным. Да, bools по умолчанию false в С#, но когда вы смотрите на код другого пользователя, это может сбивать с толку, если это было предполагаемое поведение или если они были просто неаккуратными.
Ответ 3
Лично значения по умолчанию документируются так же хорошо, как и все остальное на языке (С# или любой другой язык). Это достаточно прямо, что его следует принимать, т.е. Int начинается с 0. Сценарий, который выделяется для меня, - это если вы хотите, чтобы массив int
содержал 0. Вы собираетесь определить это или просто позволить С# инициализировать его с помощью 0s?
Кажется, немного интуитивно понятно, что большие массивы int
равны 0, но нужно указать, что один bool
является ложным. Указание основной переменной, но не более сложной структуры. Поэтому я не инициализирую его значение по умолчанию для согласованности.