首页 > 解决方案 > 创建模板类并添加事件时是否需要删除它?

问题描述

这是我的代码:

namespace X.Templates
{
    public class ABCTemplate : Grid
    {

        public ABCTemplate()
        {
            TapGestureRecognizer tap = new TapGestureRecognizer() { NumberOfTapsRequired = 1 };
            tap.Tapped += Tap_Tapped;
        }

        private void Tap_Tapped(object sender, EventArgs e)
        {
            //
        }
    }
}

我应该做些什么来删除 Tap_Tapped 还是在不再使用 ABCTemplate 时它会消失?

标签: xamarinxamarin.forms

解决方案


有没有必要删除它?

EventHandler是由垃圾收集器 ( GC )隐式清理的托管资源。您不必编写代码来显式释放此类资源。

因此,在您的情况下,没有必要手动删除它,因为它会在父视图结束其生命周期时自动释放(从当前页面弹出或从页面中删除)。

当然有时我们会看到这样的代码

tap.Tapped -= Tap_Tapped;

这是因为代码标准。如果我们调用错误的代码可能会让 Event 不再起作用。


推荐阅读