匿名型

型推論と匿名型 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C


名前の無いクラスって感じですかね。

using System;

class Program {
    static void Main() {
        var x = new {
            Foo = "foo",
            Bar = "bar"
        };
        
        Console.WriteLine( x.Foo + x.Bar );
    }
}
$ main
foobar

newの後に型指定をせずにオブジェクト初期化子指定すると、匿名型を定義できます。

しかしこれは一体なんの型になってるんでしょうか?GetTypeで見てみます。

using System;

class Program {
    static void Main() {
        var x = new {
            Foo = "foo",
            Bar = "bar"
        };
        
        Console.WriteLine( x.GetType() );
    }
}
$ main
<>f__AnonymousType0`2[System.String,System.String]

なんか良くわからない型名が表示されました。

まぁとりあえずこういう構文があるということだけ覚えておきましょう。