デフォルトのデフォルト値をフィールドに割り当てる場合 (ここでは bool に false)、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
が、私の意見では、私の教師が正当に主張した非常に優れたコード実践のように思えます。
パフォーマンスの低下が非常に小さいだけでなく、さらに重要なことは、デフォルトに依存することは、デフォルトに付属するすべてのデータ型で、コードの一部を使用する各プログラマーの知識に依存することです。(日付時刻?)
真剣に、私はこれは非常に奇妙だと思います: あまりにも明白な間違いからあなたを守るはずのまさにそのプログラムが、パフォーマンスをいくらか向上させるためだけに、ここでそれを作ることを提案しています? (ここでは、一度だけ実行される初期化コードについて話しているのです! それだけ気にするプログラマーは、もちろん初期化を省略できます (おそらく C またはアセンブラーを使用する必要があります :-) )。
FxCop はここで明らかな間違いを犯していますか?
2 つの更新:
これは私の意見ではなく、大学(ベルギー)で教えられたことです。私は論拠アドベレカンディアムを使用したいわけで はありませんが、それが私の意見だけではないことを示すためです. そしてそれに関して:
申し訳ありませんが、これを見つけました: