Re: [問題] 使用Lambda註冊的Event最後怎麼了?

看板C_Sharp (C#)作者 (信)時間11年前 (2014/04/01 04:30), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《yan04870449 (楊伯)》之銘言: : class MyClass : { : static public event Action OnCall; : } : class Car : { : public void Start() : { : MyClass.OnCall += () => : { : //做一些事情 : }; : } : } : 上面只是用來說明這個問題而已 : 範例中,我使用Lambda再Car的instance裡面註冊了事件 : 但我並沒有註銷這個事件,當這Car的instance被移除了 : 之後這個被註冊進去的匿名函式跑哪去了? : 然後當OnCall事件又發生的時候,會發生甚麼事嗎? void main() { MSG m1 = new MSG(); m1.setAction(() => { Console.WriteLine("hi"); }); m1 = null; MSG m2 = new MSG(); m2.doAction(); } public class MSG { static Action action; public void setAction(Action tmp) { action = tmp; } public void doAction() { action(); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.240.239.100 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1396297821.A.C1B.html
文章代碼(AID): #1JET1TmR (C_Sharp)
文章代碼(AID): #1JET1TmR (C_Sharp)