有人可以给我一个雄辩的,在这是为什么OK深入的解释:LAMBDA事件处理函数的范围
EventHandler e;
private void foobar(){
e = new EventHandler((o, s) => {
somectl.LayoutUpdated -= e;
}
somectl.LayoutUpdated += e;
}
但是,这并不:
private void foobar(){
EventHandler e = new EventHandler((o, s) => {
somectl.LayoutUpdated -= e;
}
somectl.LayoutUpdated += e;
}
也不是这样的:
private void foobar(){
EventHandler e;
e = new EventHandler((o, s) => {
somectl.LayoutUpdated -= e;
}
somectl.LayoutUpdated += e;
}
你会得到什么错误? – SLaks 2012-04-12 14:14:37
看到我关于这个问题的文章:http://blogs.msdn.com/b/ericlippert/archive/2006/08/18/why-does-a-recursive-lambda-cause-a-definite-assignment-error。 ASPX – 2012-04-12 14:36:59