我应该为用户控件实现IDisposable吗?

时间:2010-02-22 16:07:42

标签: c# .net

我正在创建一个.NET用户控件。我是否需要为用户控件实现IDisposable界面?

3 个答案:

答案 0 :(得分:13)

Control已实施IDisposable

如果您需要处理一些非托管资源,则只需要覆盖实现。

所以答案很简单:不,可能不是

答案 1 :(得分:7)

实际上,Control已经实现了IDisposable。如果使用Visual Studio进行任何类型的Control自动生成,则基本实现通常在.Designer.cs文件中生成。如果需要,您只需要添加到基本实现。

它有一个virtual Dispose method,它带有一个布尔标志。如果为True,则通过接口调用Dispose。如果为False,则通过终结器调用Dispose。

答案 2 :(得分:2)

仅当您拥有需要快速发布的外部资源时。否则,只要对象保持未收集状态,并且可能长于该对象,这些资源就可以保留。