暗黙的に型指定されたローカル変数を宣言する

完了

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 キーワードが表示される可能性があります。ただし、可能であればデータ型を使用する必要があります。