次の2つのステートメントの違いと、どちらをいつ使用する必要があるかを簡単に説明できますか?
たとえば、Person クラスがあり、Person クラスを別のクラスでインスタンス化したい
Person person = new Person();
var person = new Person();
次の2つのステートメントの違いと、どちらをいつ使用する必要があるかを簡単に説明できますか?
たとえば、Person クラスがあり、Person クラスを別のクラスでインスタンス化したい
Person person = new Person();
var person = new Person();
どちらも同じ MSIL コードにコンパイルされます。唯一の違いは、ソース コードを記述する際の利便性です。p
後での型を変更することにした場合Person
、コンストラクター呼び出しで 1 回置換するだけでよく、使用時に変数宣言をそのままにしておくことができますvar
。
とはいえ、行の先頭でタイプがすぐにvar
見えなくなるため、読みやすさがわずかに低下します。したがって、 の使用は、複雑にネストされたジェネリック型の場合など、型付けを実際に節約p
できる場合に限定してください。var
変数をすぐに初期化しない場合(変数が宣言されている同じステートメントで)、var
コンパイラが変数の型を推測できないため、使用できないことに注意してください。
違いはありません。これは単なる構文糖衣です:
…暗黙的に型指定されたローカル変数は、自分で型を宣言したかのように厳密に型指定されますが、型はコンパイラによって決定されます…</p>
このドキュメントを参照してください
1 つ目は明示的な宣言で、2 つ目は暗黙的な宣言です (コンパイラがオブジェクトを決定します)。それ以外の場合は同等です。
ここに違いはありません。コンパイル時にvar
変換されます。Person
私は通常var
、コードのリファクタリングを高速化するために使用しp
ますvar
。