gpt4 book ai didi

c# - 在所有情况下我都必须取消订阅所有事件吗?

转载 作者:行者123 更新时间:2023-12-03 23:51:15 25 4
gpt4 key购买 nike

例如,如果我有一个 UserControl 或一个页面在其代码隐藏文件中创建自己的事件,那么当该页面或控件卸载时,我是否必须确保取消订阅其事件?我的意思是没有外部订阅。每个订阅者都是独立的,所以我认为一旦卸载控件就不再重要了:

public sealed partial class MyPage : Page
{
public MyPage()
{
this.Unloaded += Page_Unloaded;
this.Tapped += Page_Tapped;
}

private void Page_Tapped(object sender, TappedRoutedEventArgs e)
{
// Do some work here.
}

private void Page_Unloaded(object sender, RoutedEventArgs e)
{
// Is the following appropriate and REQUIRED?

this.Unloaded -= Page_Unloaded;
this.Tapped -= Page_Tapped;
}
}

最佳答案

不,您不需要取消订阅。您不会创建对 MyPage 的任何其他引用。当每个请求完成并且 MyPage 的每个实例超出范围时,就没有对需要删除的实例的引用。

关于c# - 在所有情况下我都必须取消订阅所有事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44271094/

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