rksoftware

Visual Studio とか C# とかが好きです

C# 2.0 以降の新機能の確認 - C# 3.0 - 匿名型

C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。

匿名型

 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/anonymous-types
 明示的に型を定義することなく、複数の読み取り専用プロパティを持ったオブジェクトを生成できる。 各プロパティの型はコンパイラにより推論される。

var p = new { Name = "窓スマ", Size = 5.0 };

// 読み取り専用のプロパティを持っている
Console.WriteLine(string.Format("{0}, {1} インチ", p.Name, p.Size));      // 窓スマ, 5 インチ
// 型は匿名の型
Console.WriteLine(string.Format("p is {0}", p.GetType().Name));          // p is <>f__AnonymousType0`2
// プロパティの型は推論される
Console.WriteLine(string.Format("Name is {0}", p.Name.GetType().Name));  // Name is String
Console.WriteLine(string.Format("Size is {0}", p.Size.GetType().Name));  // Name is Double