我正在创建一个.NET用户控件。我是否需要为用户控件实现IDisposable
界面?
答案 0 :(得分:13)
Control
已实施IDisposable
如果您需要处理一些非托管资源,则只需要覆盖实现。
所以答案很简单:不,可能不是。
答案 1 :(得分:7)
实际上,Control已经实现了IDisposable。如果使用Visual Studio进行任何类型的Control自动生成,则基本实现通常在.Designer.cs文件中生成。如果需要,您只需要添加到基本实现。
它有一个virtual Dispose method,它带有一个布尔标志。如果为True,则通过接口调用Dispose。如果为False,则通过终结器调用Dispose。
答案 2 :(得分:2)
仅当您拥有需要快速发布的外部资源时。否则,只要对象保持未收集状态,并且可能长于该对象,这些资源就可以保留。