ブログトップ 記事一覧 ログイン 無料ブログ開設

Kazzzの日記 このページをアンテナに追加 RSSフィード

2006-06-23

[]anonymous delegate <> System.Delegate


結局は

eventInfo.AddEventHandler(control, new EventHandler(
    delegate(object sender, EventArgs e)
    {
       action.Run();
    })
);

というコードが、
eventInfo.AddEventHandler(control,     
    delegate(object sender, EventArgs e)
    {
       action.Run();
    });

と書けないのが、つまり匿名デリゲートはSystem.Delegateと互換性が無いのが自由度を低くしていると思う。
あ、もちろん.NETの匿名デリゲートがクロージャブロックではなく、コンパイラが自動的に生成するこんな感じの
private sealed class DisplayClass2
{
    public DisplayClass2(){}
    public void Add(object sender, EventArgs args)
    {
        this.action.Run();
    }
    public IAction action;
}

インナークラスのシンタクスシュガーであることは承知の上。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/Kazzz/20060623/p2