2006-06-23
■[.NET]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
リンク元
- 15 http://www.takakuro.net/blogs/nagile/archive/2006/06/15/376.aspx
- 6 http://reader.livedoor.com/reader/
- 6 http://www.ailight.jp/blog/kazuk/archive/2006/06/23/11612.aspx
- 4 http://www.google.co.jp/search?q=カナル型 フランジ&hl=ja&lr=&start=20&sa=N
- 3 http://sonic64.com/planet/dotnet/
- 3 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2004-29,GGLD:ja&q=log4n
- 2 http://a.hatena.ne.jp/megalith/?gid=28341
- 2 http://a.hatena.ne.jp/yaneurao/
- 2 http://hoso.homelinux.net/hatena/antenna.jsp
- 2 http://r.hatena.ne.jp/smeghead/s2/
