Re: [問題] Lamdba陳述式疑問

看板C_Sharp (C#)作者 (WildDagger)時間10年前 (2014/11/13 09:03), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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。 -- posted from my Cortana -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.250.46.136 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1415840630.A.FBE.html
文章代碼(AID): #1KP0Ds-- (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #1KP0Ds-- (C_Sharp)