暗黙的に型指定されたローカル変数を宣言する
C# コンパイラは、コードを記述するときに役立つバックグラウンドで動作します。 初期化された値によって変数のデータ型を推論できます。 このユニットでは、暗黙的に型指定されたローカル変数と呼ばれるこの機能について説明します。
暗黙的に型指定されたローカル変数とは
暗黙的に型指定されたローカル変数は、 var
キーワードの後に変数の初期化を使用して作成されます。 例えば次が挙げられます。
var message = "Hello world!";
この例では、string
キーワードの代わりに var
キーワードを使用して文字列変数を作成しました。
var
キーワードは、割り当てられた値によってデータ型が暗黙的に指定されていることを C# コンパイラに伝えます。 型が暗黙的に指定された後、変数は実際のデータ型を使用して宣言した場合と同じように動作します。
var
キーワードは、型が長い場合、または型がコンテキストから明らかな場合に、キーストロークを保存するために使用されます。
この例では、次のようになります。
var message = "Hello world!";
変数 message
はすぐに string
値 "Hello World!"
に設定されるため、C# コンパイラは意図を理解し、 message
のすべてのインスタンスを string
型のインスタンスとして扱います。
実際、 message
変数は string
として型指定され、変更することはできません。 たとえば、次のコードを考えてみましょう。
var message = "Hello World!";
message = 10.703m;
このコードを実行すると、次のエラー メッセージが表示されます。
(2,11): error CS0029: Cannot implicitly convert type 'decimal' to 'string'
注
他のプログラミング言語では、 var
キーワードの使用方法が異なります。 C# では、実際のデータ型名を使用するか、コンパイラがデータ型を意味するかを問わず、コンパイラによって変数に型が割り当てられます。 つまり、型は宣言時にロックされるため、別のデータ型の値を保持することはできません。
var
キーワードを使用する変数は初期化する必要があります
var
キーワードは変数の初期化に使用する値に依存していることを理解しておくことが重要です。 変数を初期化せずに var
キーワードを使用しようとすると、コードのコンパイル時にエラーが発生します。
var message;
コンパイル時にこのコードを実行しようとすると、次の出力が表示されます。
(1,5): error CS0818: Implicitly-typed variables must be initialized
var
キーワードを使用する理由
var
キーワードは、C# コミュニティで広く採用されています。 ブックまたはオンラインのコード例を見ると、実際のデータ型名ではなく var
キーワードが使用される可能性が高いので、その使用方法を理解することが重要です。
var
キーワードは、C# で重要な用途を持っています。 多くの場合、変数の型は初期化から明らかです。 このような場合は、 var
キーワードを使用する方が簡単です。
var
キーワードは、アプリケーションのコードを計画するときにも役立ちます。 タスクのコードの開発を開始すると、使用するデータ型がすぐにわからない場合があります。
var
を使用すると、ソリューションをより動的に開発できます。
作業を開始する際は、コードの操作が快適になるまで変数を宣言するときに、実際のデータ型名を引き続き使用することをお勧めします。 変数を宣言するときにデータ型を使用すると、コードを記述するときに意図的に役立ちます。
まとめ
これまでに var
キーワードについて学習した内容を次に示します。
-
var
キーワードは、初期化される値に基づいて変数のデータ型を推論するようにコンパイラに指示します。 - 他のユーザーのコードを読むと、
var
キーワードが表示される可能性があります。ただし、可能であればデータ型を使用する必要があります。