Теперь правило не совсем неверно, но, как говорится, это не является для вас приоритетом, поэтому просто отключите правило.

азначении значения по умолчанию для поля (здесь false для bool), FxCop говорит:

Resolution   : "'Bar.Bar()' initializes field 'Bar.foo' 
               of type 'bool' to false. Remove this initialization 
               because it will be done automatically by the runtime."

Теперь я знаю этот код какint a = 0 или жеbool ok = false вводит некоторую избыточность, но мне кажется, это очень, очень хорошая практика кодирования, на которой мои учителя справедливо настаивали, по моему мнению.

Мало того, что снижение производительности очень мало, что еще более важно: полагаться на стандартное значение - значит полагаться на знания каждого программиста, когда-либо использующего фрагмент кода, на каждом типе данных, который идет с параметром по умолчанию. (DateTime?)

Серьезно, я думаю, что это очень странно: сама программа, которая должна защищать вас от слишком очевидных ошибок, предлагает сделать одну, только для повышения производительности? (мы говорим окод инициализации здесь исполняется только один раз! Программисты, которые так заботятся, могут, конечно, пропустить инициализацию (и, вероятно, должны использовать C или ассемблер :-)).

FxCop делает очевидную ошибку здесь, или есть что-то еще?

Два обновления:

Это не только мое мнение, но и то, чему меня учили в университете (Бельгия). Не то, чтобы я хотел использоватьаргумент ad verecundiam, но просто чтобы показать, что это не только мое мнение. И относительно этого:

Мои извинения, я только что нашел это:

Должен ли я всегда / никогда / никогда не инициализировать поля объекта значениями по умолчанию?

Ответы на вопрос(6)

Ваш ответ на вопрос