作者don750421 (1+1≠2)
看板C_Sharp
标题[问题] Lamdba陈述式疑问
时间Tue Nov 11 22:42:40 2014
小弟最近在学Lamdba,在看MSDN时看到一段
Lamdba的变数范围
1.已撷取的变数要等到参考该变数的委派符合记忆体回收的资格时,
才会进行记忆体回收。
2.导入 Lambda 运算式内的变数无法在外部方法中看见。
3.Lambda 运算式无法直接撷取外层(enclosing)方法的 ref 或 out 参数。
4.Lambda 运算式中的 return 陈述式不会令其外围(enclosing)方法返回。
5.如果跳跃陈述式的目标不在区块内,则 Lambda 运算式不可包含 Lambda 函式内的
goto 陈述式、break 陈述式或 continue 陈述式。 即使目标位於区块内,跳跃陈述式
出现在 Lambda 函式区块外部也一样是错误。
针对第4点和第5点有些不了解MSDN解释的意思。
有人可以解释一下,或是提出范例说明吗??
感恩。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.173.52.110
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1415716963.A.6E3.html
1F:推 O187: 你把lambda当作另一个独立的method,只是可以存取外层method 11/11 23:29
2F:→ O187: 内的变数, 这样会比较好懂 11/11 23:29
3F:推 s3748679: 可以用decompiler去看看lambda会产生什麽code 12/06 00:43
4F:→ s3748679: 实验一下就可以知道了 12/06 00:44