雑記 - otherwise

最近はDQ10しかやっていないダメ技術者がちまちまと綴る雑記帳

dynamic って匿名型にも使えるんですね

C# 4.0 で追加される dynamic については、いまいちよく判らなくて全然さわれていないのですが、 MSDN の「連載! とことん C# 」の第 8 回で興味深い記載があったのでちょっと試してみました。

class Foo {
  static dynamic Hoge() {
    return new {
      Name = "水無灯里",
      Ruby = "みずなしあかり",
      Age  = 15
    };
  }
  
  static void Main() {
    var akari = Hoge();
    Console.WriteLine("{0}({1}) : {2} 歳", akari.Name, akari.Ruby, akari.Age);
  }
}

なるほど。匿名型の実行時型解決にも利用可能なんですね。
これ、内部的にはリフレクションっぽい事をしているのだと思うのですが、プログラム上すっきり書けるのは魅力的かも。
# Tuple を利用した書き方と比べても、可読性が高くていいと思います。

class Foo {
  static Tuple<string, string, int> Hoge() {
    return Tuple.Create("水無灯里", "みずなしあかり", 15);
  }
  
  static void Main() {
    var akari = Hoge();
    Console.WriteLine("{0}({1}) : {2} 歳", akari.Item1, akari.Item2, akari.Item3);
  }
}