[問題] Lamdba陳述式疑問

看板C_Sharp (C#)作者 (1+1≠2)時間10年前 (2014/11/11 22:42), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串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解釋的意思。 有人可以解釋一下,或是提出範例說明嗎?? 感恩。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.173.52.110 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1415716963.A.6E3.html

11/11 23:29, , 1F
你把lambda當作另一個獨立的method,只是可以存取外層method
11/11 23:29, 1F

11/11 23:29, , 2F
內的變數, 這樣會比較好懂
11/11 23:29, 2F

12/06 00:43, , 3F
可以用decompiler去看看lambda會產生什麼code
12/06 00:43, 3F

12/06 00:44, , 4F
實驗一下就可以知道了
12/06 00:44, 4F
文章代碼(AID): #1KOY1ZRZ (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1KOY1ZRZ (C_Sharp)