C#3.0の匿名クラスでメソッド(もどき)が定義できる件

C#3.0の匿名クラスってプロパティしか定義できないけど、プロパティの型をDelegateにすればメソッドみたいに振る舞うプロパティを定義できる事に気が付いた。

class Program {
    static void Main(string[] args) {
        var obj = new {
            Greet=(Func<string, string>)((name) => "Hello " + name)
        };
        Console.WriteLine(obj.Greet("coma2n"));
        Console.Read();
    }
}

まぁ、たいして使い道は無いんだけどね。