私は var の必要性を理解しており、その目的を十分に果たしています。キーワードを持たず、タイプを指定せずにその場で変数を定義するのは恐ろしいことです。1 年以上触れていないコードを作り直す必要がある場合は、コードを保守しなければならない次の人や自分自身を傷つけます。それがC#で開かれるべきドアであるかどうかはわかりません.varが不要なときに過剰に使用されると、読みやすさの問題がすでに発生していないことを願っています.
私が最近見ているほぼすべての.net 3.5の例には、すべての変数がvarで定義されています。
私が主張するのは、使いすぎたときにキーストロークを節約するために、読みやすさを実際に犠牲にしているということです。例えば:
// What myVar is, is obvious
SomeObject myVar = new SomeObject();
// What myVar is, is obvious here as well
var myVar = new SomeObject();
私が見る問題は、人々がどこでもそれを使用していることです...たとえば:
// WTF is var without really knowing what GetData() returns?
// Now the var shortcut is making me look somewhere else when this should
// just be readable!
var myVar = GetData();
// If the developer would have just done it explicitly it would actually
// be easily readable.
SomeObject myVar = GetData();
したがって、次の議論は、関数に適切な名前を付けるだけです...
var weight = GetExactWeightOfTheBrownYakInKilograms();
何が返ってくるかはまだわかりません。int、decimal、float、weight オブジェクトですか? 私はまだそれを調べる時間を無駄にしなければなりません...私の怠惰なプログラミングから一日を救うためにインテリセンスの松葉杖が必要です。関数名に戻り値の型を含めてください。var を使用しても、すべての関数に実際の長い名前を付ける以外に何も節約できませんでした。
人々は var を使いすぎており、それが怠惰なプログラミングにつながり、コードが読みにくくなっていると思います。キーワード var を入力するたびに、明示的ではなく、なぜそれを使用するのかという正当な理由が必要です。