【发布时间】:2010-02-22 16:07:41
【问题描述】:
我正在创建一个 .NET 用户控件。我需要为我的用户控件实现IDisposable 接口吗?
【问题讨论】:
我正在创建一个 .NET 用户控件。我需要为我的用户控件实现IDisposable 接口吗?
【问题讨论】:
Control 已经实现了IDisposable
如果你需要释放一些非托管资源,你只需要覆盖实现。
所以简单的答案是:不,可能不是。
【讨论】:
实际上,Control 已经实现了 IDisposable。如果您使用 Visual Studio 对控件进行了任何类型的自动生成,通常会在 .Designer.cs 文件中生成基本实现。如果需要,您只需添加到基本实现即可。
它有一个virtual Dispose method,它带有一个布尔标志。如果为 True,则通过接口调用 Dispose。如果为 False,则通过终结器调用 Dispose。
【讨论】:
仅当您有需要快速释放的外部资源时。否则,只要对象仍未被收集,这些资源就会被保留,并且可能更长。
【讨论】: