2

オブジェクトを作成するときに、実際のタイプよりもvarキーワードを使用することが望ましいのはなぜですか?

var strList  = new List<string>(); //good?
List<string> strList  = new List<string>(); //why bad?

質問はそれだけではありませんList<T>

4

4 に答える 4

2

varキーワードは、ノイズを隠すのに最適です。あなたが次のようなステートメントを持っているとき

List<string> strList  = new List<string>();

strListのタイプがListであることを確認できます。タイプを2回入力すると、時間の無駄になります。後でタイプを変更する場合は、両方の場所でタイプを変更する必要があります。

私の好みは、タイプを指定するときに常にvarを使用することです。これは、近くですでに明らかに指定されています。タイプがそれほど重要でない場合は、インスタンス変数にvarを使用することがよくあります。

于 2013-03-18T20:51:48.873 に答える
2

varどちらが良くて、どちらかが悪いということではありません。それは一種の個人的な好みです。

より具体的にしたい場合は、次varのように、型が完全に明らかな場合にのみ使用する必要があると思います。

var employee = new Employee();

反対に、次のことを行うのはおそらく恐ろしい考えです。

var e = GetEmployees();

eEmployeeオブジェクトなのか、リスト、配列などなのかを判断するのは難しいためです。

また、読みやすさを損なわずに労力を節約できる場合にも、おそらくこれを使用するのが適切です。

ReallyLongClassName someidentifier = new ReallyLongClassName();

VS

var explanatoryIdentifier = new ReallyLongClassName();

しかし、最終的には個人的な好みに帰着します。読みやすさを損なう場合は、文字を保存しないでください。

于 2013-03-18T20:57:03.847 に答える
1

これは単なる良い練習用List<string> strList = new List<string>();(明示的な入力) です。コードが読みやすくなりますが、同等です。

于 2013-03-18T20:47:00.530 に答える
1

var が優れている理由は、型宣言の重複がなくなるからです。つまり、strList (名前が悪い) の型を変更する場合は、1 か所で行います。

于 2013-03-18T20:50:55.000 に答える