私はStyleCopを使用して、人々が以前に設定されたコード標準に準拠していることを確認しましたが、その後、ニーズに合わせて構成しました。数日間、デフォルト設定でStyle Copを使用して試してみましたが、いくつかのことに少し戸惑っています。たとえば、変数を宣言する場合、それがどのタイプであるかを述べるのが本当に好きです。
int foo;
また
Bar foo = new Bar();
var
スタイルコップはあなたにキーワードをたくさん使うことを望んでいます。コンパイラとIDEは、インスタンス化によって型を把握できることを理解しています。
var foo = 1; // Makes foo and int
var foo = new Bar(); // Makes foo a Bar
宣言とインスタンス化が1つのステップで実行されると、何が起こっているかがかなりわかります。
Style Copが気に入らないことがいくつかあるので、基本的には、標準のStyle Cop構成によって適用されるコーディングスタイルがどれほど一般的で、どこから来ているのかを知りたいだけです。
注:以下のこの使用法var
は、hvdで述べられているように無効です。var
すぐに少し気分が良くなりました;)。元の質問だったのでそのままにしておきます
しかし、あなたがのようないくつかのあいまいなものを持っている場合
var foo
... bunch of code ...
foo = getLatestData();
何が起こるかは明らかではありませんfoo
。しかし、あなたの宣言を見てfoo
も、賢くなることはありません。代わりに、関数の宣言を確認する必要がありgetLatestData
ます。
var
アプローチはすべてを少し曇らせているように感じます。foo
それがであると宣言した場合に得られるような厳密な制御はありませんint
。次に、それfoo
は常にですint
。データの取得元には依存しません。このようなものは、2つの異なるタイプのfooを非常にうまく与える可能性があります。
var foo;
...
if(status == 0) {
foo = getLatestData();
}
else {
foo = getOtherData();
}
2つの関数が同じ型を返す必要があるfoo
ため、異なるものになる可能性があることを強制するものは何もありません。すべてを自分でコーディングし、それがこのように含まれている場合、おそらく追跡するのは簡単です。しかし、それがAPIまたはプラグインライブラリである場合、外部のサードパーティ開発者がタイプを冷静に指示するfoo
と、その場合はどうすればよいかわからないため、悪夢になります。