varによるローカル変数の型推論
型が明らかな場合にvarを使います。
「varによるローカル変数の型推論」はCoddyKit上の無料C# Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC# Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C# Academyコースには全4レッスンが含まれています。
var とは
var を使うと、初期化子からローカル変数の型をコンパイラに推論させることができます。変数はコンパイル時には引き続き静的に型付けされます。
using System;
class Program {
static void Main() {
var count = 10;
Console.WriteLine(count);
}
}var は dynamic ではない
var はコンパイル時に解決されます。var x = 10 は正確には int であり、後から文字列を格納することはできません。
using System;
class Program {
static void Main() {
var name = "Ada";
Console.WriteLine(name.GetType().Name);
}
}リテラルからの推論
コンパイラはリテラルを読み取り、型を選択します。1 は int、1.5 は double、"hi" は string になります。
using System;
class Program {
static void Main() {
var a = 1;
var b = 1.5;
var c = "hi";
Console.WriteLine(a.GetType().Name + " " + b.GetType().Name + " " + c.GetType().Name);
}
}初期化子が必要
型は初期化子から決まるため、var 変数には宣言時に値を代入する必要があります。
using System;
class Program {
static void Main() {
var total = 0;
for (int i = 1; i <= 4; i++) total += i;
Console.WriteLine(total);
}
}明らかな型での var
右辺から型がすでに明らかな場合、たとえばコンストラクター呼び出しの場合に var が役立ちます。型名の繰り返しを避けられます。
using System;
using System.Collections.Generic;
class Program {
static void Main() {
var list = new List<int> { 1, 2, 3 };
Console.WriteLine(list.Count);
}
}メソッドの戻り値での var
メソッド名から型が明らかな場合は、戻り値に var を使用できます。
using System;
class Program {
static int Square(int n) { return n * n; }
static void Main() {
var result = Square(6);
Console.WriteLine(result);
}
}foreach での var
要素の型が既知のコレクションを処理する foreach ループでは、var が便利です。
using System;
class Program {
static void Main() {
var names = new[] { "Sam", "Lee" };
foreach (var n in names)
Console.WriteLine(n);
}
}推論される配列
暗黙的に型付けされた配列 new[] { ... } では、値から要素の型が推論されます。
using System;
class Program {
static void Main() {
var nums = new[] { 10, 20, 30 };
Console.WriteLine(nums.Length);
}
}var でも型安全性は保たれる
型は固定されているため、後から間違った型を代入すると、明示的な宣言の場合と同様にコンパイルに失敗します。
using System;
class Program {
static void Main() {
var x = 5;
x = 10;
Console.WriteLine(x);
}
}var と匿名型
匿名型には記述できる名前がないため、匿名型には var が必要です。
using System;
class Program {
static void Main() {
var point = new { X = 3, Y = 4 };
Console.WriteLine(point.X + ", " + point.Y);
}
}可読性の向上
var を適切に使うと、冗長な部分が減ってコードの位置が揃いやすくなります。特に、長いジェネリック型名で効果的です。
using System;
using System.Collections.Generic;
class Program {
static void Main() {
var scores = new Dictionary<string, int> { ["Ann"] = 90 };
Console.WriteLine(scores["Ann"]);
}
}理解度チェック
var の理解度を確認しましょう。
まとめ
var は、初期化子からローカル変数の型を推論するようコンパイラに指示します。そのため、dynamic とは異なり、変数はコンパイル時に静的に型付けされ、型が固定されます。
初期化子が必要で、重複する型名を省略でき、匿名型には必須です。型がすでに明らかな場合は、可読性も向上します。
よくある質問
「varによるローカル変数の型推論」レッスンは無料ですか?
はい。「varによるローカル変数の型推論」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C# Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C# Academyコースには全4レッスンが含まれています。
「varによるローカル変数の型推論」で何を学びますか?
型が明らかな場合にvarを使います。 ブラウザで直接実行するハンズオンコードでC# Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
C# Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのC# Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「varによるローカル変数の型推論」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このC# Academyレッスンでコードを書いて実行できますか?
はい。すべてのC# Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- varによるローカル変数の型推論
- varを避けるべき場面
- dynamic型
- ターゲット型指定されたnew式