xamarin - 创建模板类并添加事件时是否需要删除它?
问题描述
这是我的代码:
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 时它会消失?
解决方案
有没有必要删除它?
EventHandler是由垃圾收集器 ( GC )隐式清理的托管资源。您不必编写代码来显式释放此类资源。
因此,在您的情况下,没有必要手动删除它,因为它会在父视图结束其生命周期时自动释放(从当前页面弹出或从页面中删除)。
当然有时我们会看到这样的代码
tap.Tapped -= Tap_Tapped;
这是因为代码标准。如果我们调用错误的代码可能会让 Event 不再起作用。
推荐阅读
- java - 即时更改 System.in 并以编程方式读取 System.out (Jsch)
- r - 使用 ggplot 创建具有单个向量的条形图
- c# - GetDeclaredSymbol 为空
- python - 定时器后获取python类函数的返回值
- c# - 为什么我的程序接受带有逗号 (,) 的双数?
- api - 如何使用长 Azure JWT 令牌发送 HTTP 请求
- php - htaccess- 文件只能在没有扩展名的情况下访问,并且应该将扩展名重定向到 home url
- c# - 如何使用 if 语句检查事件实体的状态码?
- python - python-openCV 模块未找到错误
- linux - OCaml 文件 I/O:为什么 add_channel 为 /proc/ 返回空内容
/命令行?