C# の var
キーワードは、ローカル変数の型をコンパイラに推論させる便利な機能です。しかし、使い方を誤るとコードの可読性を損なうこともあります。本記事では var
のメリット・デメリットと、使うべき場面・避けるべき場面を具体的に解説します。
var の基本
var
は C# 3.0 から導入された型推論機能です。明示的に型を書かなくても、右辺の式から型を推論してくれます。
例:
var number = 10; // int と推論される
var message = "Hello World"; // string と推論される
実行時ではなくコンパイル時に型が決定されるため、動的型付け(dynamic
)とは異なります。
var を使うメリット
- 型名の重複を避けて記述量を減らせる
- 読みやすくスッキリしたコードになる
- 匿名型を扱える
var person = new { Name = "Taro", Age = 30 };
var を使うべきケース
1. 右辺から明確に型がわかるとき
var list = new List<string>(); // List<string> とすぐに分かる
2. 型が冗長・複雑なとき
var lookup = new Dictionary<string, List<int>>();
3. LINQ や匿名型の結果を扱うとき
var result = items.Where(x => x.IsActive).Select(x => new { x.Id, x.Name });
var を避けるべきケース
1. 型が不明確・推論しづらいとき
var data = GetData(); // GetData の戻り値が明示されていないと可読性が下がる
2. 可読性を重視したいとき
User user = userRepository.FindById(1); // 一目で User 型と分かる
3. 他の開発者への配慮が必要なとき
- チーム開発では明示的な型が望まれる場面も多くあります
var と動的型 dynamic の違い
キーワード | 型決定タイミング | 補完/型チェック | 主な用途 |
---|---|---|---|
var | コンパイル時 | あり | 通常のローカル変数 |
dynamic | 実行時 | なし | COM 連携、動的オブジェクトなど |
まとめ
var
は便利な機能ですが、使いどころを誤るとコードの可読性や保守性を損なうことがあります。推論される型が明確な場合や、コードを簡潔にできる場面では積極的に使い、型が不明瞭なときや明示が有利な場合は避けるなど、バランスよく活用しましょう。