オブジェクトを作成するときに、実際のタイプよりもvarキーワードを使用することが望ましいのはなぜですか?
var strList = new List<string>(); //good?
List<string> strList = new List<string>(); //why bad?
質問はそれだけではありませんList<T>
。
オブジェクトを作成するときに、実際のタイプよりもvarキーワードを使用することが望ましいのはなぜですか?
var strList = new List<string>(); //good?
List<string> strList = new List<string>(); //why bad?
質問はそれだけではありませんList<T>
。
varキーワードは、ノイズを隠すのに最適です。あなたが次のようなステートメントを持っているとき
List<string> strList = new List<string>();
strListのタイプがListであることを確認できます。タイプを2回入力すると、時間の無駄になります。後でタイプを変更する場合は、両方の場所でタイプを変更する必要があります。
私の好みは、タイプを指定するときに常にvarを使用することです。これは、近くですでに明らかに指定されています。タイプがそれほど重要でない場合は、インスタンス変数にvarを使用することがよくあります。
var
どちらが良くて、どちらかが悪いということではありません。それは一種の個人的な好みです。
より具体的にしたい場合は、次var
のように、型が完全に明らかな場合にのみ使用する必要があると思います。
var employee = new Employee();
反対に、次のことを行うのはおそらく恐ろしい考えです。
var e = GetEmployees();
e
がEmployee
オブジェクトなのか、リスト、配列などなのかを判断するのは難しいためです。
また、読みやすさを損なわずに労力を節約できる場合にも、おそらくこれを使用するのが適切です。
ReallyLongClassName someidentifier = new ReallyLongClassName();
VS
var explanatoryIdentifier = new ReallyLongClassName();
しかし、最終的には個人的な好みに帰着します。読みやすさを損なう場合は、文字を保存しないでください。
これは単なる良い練習用List<string> strList = new List<string>();
(明示的な入力) です。コードが読みやすくなりますが、同等です。
var が優れている理由は、型宣言の重複がなくなるからです。つまり、strList (名前が悪い) の型を変更する場合は、1 か所で行います。