gpt4 book ai didi

c# - lambda表达式的生命范围是什么?

转载 作者:行者123 更新时间:2023-11-30 19:18:29 24 4
gpt4 key购买 nike

lambda 表达式的生命周期是多长?

这是我的问题:我有一个由 lambda 表达式订阅的 button1.Click 事件。我不知道我是否需要取消订阅(这并不容易,因为它是匿名的)?或者我不必这样做,因为它与它所连接的控件(按钮 1)处于同一生命周期内?

button1.Click += (s, e) => { /*Do something; */};

最佳答案

由于 lambda 表达式与按钮关联,只要按钮未从内存中销毁,它就会一直存在。对于您的问题

I don't know if I need need to unsubscribe it (which is not easy because it is anonymous)?

Lambda 表达式可以保存到 EventHandler 委托(delegate),这使您可以选择访问 lambda 和取消订阅事件。这是代码。

    EventHandler myEvent= (s, e) => { /*Do something; */};  
//Subscribe
button1.Click += myEvent;
//Unsubscribe
button1.Click -= myEvent;

可能是关于此主题的最佳解释 Should I unsubscribe from events?

关于c# - lambda表达式的生命范围是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12649804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com