2009-11-17 101 views
3

我聽說如果使用lambda表達式來訂閱一個事件,那麼這會創建一個對事件處理程序代碼的弱引用,所以當訂閱者不需要顯式地取消訂閱事件死亡/不再感興趣。這是真的? 例如Lambda表達式和事件訂閱

aPersion.PropertyChanged += (s, e) => 
        { 
         if (e.PropertyName == "Name") 
         { 
          this.Name = this.TheController.Name; 
         } 
        }; 

回答

2

不,這是神話。 Lambdas創建常規代表(至少在這種用法中)。這種混亂往往很簡單,如果出版目標要與圍繞相同時間爲用戶完成之前或者在,那麼就沒有必要取消。活動代表只保留用戶,而不是發佈者

在給定的例子,因此,這取決於是否您的出版商:aPersion(大概是一個人或類似)會形式/頁/不管完成後使用

+0

這真是太棒了,謝謝 - 看起來我不會懶惰;) – drjeks 2009-11-17 16:52:51