Вопрос по стилю кода здесь.
Я посмотрел на этот вопрос, который спрашивает, действительно ли .NET CLR всегда инициализирует значения полей. (Ответ да .) Но меня поражает, что я не уверен, что это всегда хорошая идея сделать это. Я думаю, что если я увижу заявление, подобное этому:
int myBlorgleCount = 0;
У меня довольно хорошая идея, что программист ожидает, что счет начнется с нуля, и с этим все в порядке, по крайней мере, в ближайшем будущем. С другой стороны, если я просто увижу:
int myBlorgleCount;
У меня нет ни малейшего представления, является ли 0 допустимым или разумным значением. И если программист только начинает читать и изменять его, я не знаю, намеревался ли программист начать использовать его до того, как он установит для него значение, или он ожидал, что он будет равен нулю и т. Д.
С другой стороны, некоторые довольно умные люди и утилита очистки кода Visual Studio говорят мне, чтобы удалить эти избыточные объявления. Каково общее согласие по этому вопросу? (Есть консенсус?)
Я пометил это как независимость от языка, но если есть какой-то странный случай, когда это определенно хорошая идея пойти против фактуры для конкретного языка, это, вероятно, стоит указать.
РЕДАКТИРОВАТЬ : Хотя я и говорил, что этот вопрос не зависит от языка, он, очевидно, не применим к таким языкам, как C, где инициализация значений не производится.
РЕДАКТИРОВАТЬ : Я ценю ответ Джона, но это именно то, что я не ищу. Я понимаю, что .NET (или Java или что-то еще) выполнит эту работу и последовательно и правильно инициализирует значения. Я хочу сказать, что если я вижу код, который изменяет значение, которое ранее не было явно задано в коде, я, как сопровождающий код, не знаю, имел ли исходный кодер значение по умолчанию, или просто забыл установить значение, или ожидал, что оно будет установлено где-то еще и т. д.