[問題] Lamdba陳述式疑問

作者: don750421 (1+1≠2)   2014-11-11 22:42:40
小弟最近在學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解釋的意思。
有人可以解釋一下,或是提出範例說明嗎??
感恩。
作者: O187 (187cm)   2014-11-11 23:29:00
你把lambda當作另一個獨立的method,只是可以存取外層method內的變數, 這樣會比較好懂
作者: s3748679   2014-12-06 00:43:00
可以用decompiler去看看lambda會產生什麼code實驗一下就可以知道了

Links booklink

Contact Us: admin [ a t ] ucptt.com