C#におけるvarキーワードの導入とその意義

C# 3.0 で導入された var は、暗黙的に型を指定できるキーワードです。コードの簡潔性を高め、型名が冗長な場合でも可読性を保てるメリットがあります。


1. varの登場バージョンと背景

要素内容
導入バージョンC# 3.0(2007年)
対応 Visual StudioVisual Studio 2008 以降
主な目的LINQ の導入に伴い、複雑な型名(匿名型やIEnumerable)への対応が必要となったため

2. 基本的な使い方

var number = 42;             // int
var name = "Alice";          // string
var items = new List<string>(); // List<string>
  • 右辺から型がコンパイル時に確定される
  • 代入式が必須(var x; のような宣言は不可)

3. var 使用のメリット

✅ コードの簡潔化

// 冗長な型名
Dictionary<string, List<int>> map = new Dictionary<string, List<int>>();

// var を使った簡略表記
var map = new Dictionary<string, List<int>>();

✅ 匿名型との親和性

var person = new { Name = "Bob", Age = 30 };
// 型名を明示的に書けないので var が必須

4. 注意点とベストプラクティス

❌ 過度な使用は可読性を損なう

var x = GetData(); // GetData() の戻り値が不明 → 読みにくい

✅ 意図が明確な場合に使用する

var count = 100; // int だとすぐわかる

5. var の使用が推奨される場面

ケース説明
匿名型型名を明示できないため必須
LINQIEnumerable など長い型名になることが多い
明らかに型がわかる初期化var i = 0; など

6. 実際のコード事例(比較)

// 明示的な型指定
List<string> names = new List<string>();

// var を使った簡略化
var names = new List<string>();

7. まとめ

  • var は 型推論 によって変数宣言を簡略化するためのキーワード
  • 型安全性は保たれる(動的型付けではない)
  • 可読性を意識して使い分けることが大切

補足:C#のバージョンと主な機能(抜粋)

C#バージョン主な機能
3.0var、LINQ、ラムダ式、匿名型など
7.0以降パターンマッチング、out var 宣言、タプル型など
12〜13(予定)コレクション式、field キーワード など(予定・プレビュー)
訪問数 39 回, 今日の訪問数 1回

C#

Posted by hidepon