C# Lambda表达式和事件订阅

C# Lambda表达式和事件订阅,c#,events,lambda,C#,Events,Lambda,我听说,如果使用lambda表达式订阅事件,则会创建对事件处理程序代码的弱引用,因此当订阅者死亡/不再感兴趣时,不需要显式取消订阅事件。这是真的吗? 例如 不,在事件订阅的上下文中,lambda表达式只是所有意图和目的的委托,因此仍然容易出现失效侦听器问题。所以不,这绝对不是一个弱引用 不,这是个神话。lambda创建常规委托(至少在这种用法中)。混淆之处往往是,如果发布对象将在订阅者之前或大约同时完成,则无需取消订阅。事件委托仅保留订阅服务器验证程序,而不保留发布服务器 因此,在给出的示例中,

我听说,如果使用lambda表达式订阅事件,则会创建对事件处理程序代码的弱引用,因此当订阅者死亡/不再感兴趣时,不需要显式取消订阅事件。这是真的吗? 例如


不,在事件订阅的上下文中,lambda表达式只是所有意图和目的的委托,因此仍然容易出现失效侦听器问题。所以不,这绝对不是一个弱引用


不,这是个神话。lambda创建常规委托(至少在这种用法中)。混淆之处往往是,如果发布对象将在订阅者之前或大约同时完成,则无需取消订阅。事件委托仅保留订阅服务器验证程序,而不保留发布服务器


因此,在给出的示例中,这取决于您的发布者:
aPersion
(可能是个人或类似人士)是否将在表单/页面/任何内容完成后使用。

非常感谢鲁本-似乎文特经理是我这种情况下的新朋友。
aPersion.PropertyChanged += (s, e) =>
                    {
                        if (e.PropertyName == "Name")
                        {
                            this.Name = this.TheController.Name;
                        }
                    };