Re: [问题] Lamdba陈述式疑问

楼主: hoyunxian (WildDagger)   2014-11-13 09:03:46
※ 引述《don750421 (1+1≠2)》之铭言:
: 小弟最近在学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解释的意思。
: 有人可以解释一下,或是提出范例说明吗??
: 感恩。
第四点是说类似这个状况吧
public static void Main()
{
btnX.Click += (o, e) => {
if (string.IsNullOrEmpty(textbox1.Text)) return;
......(以下略)
};
}
这个程式码只是说在一个命名为btnX的按钮上用Lamdha运算式去绑一个Click事件
为了避免说没输入该输入的资讯就按确认键,
所以第一行先确定方块有没有输入资料,没有就返回(return)
不过很明显也看得出来这个return只是指事件本身return
不代表说包在外面的Main函式也得跟着return。

Links booklink

Contact Us: admin [ a t ] ucptt.com