|
|
1
5
错误的
通常,任何实现
大多数没有非托管资源的对象不会实现
唯一的例外是实现的基类
|
|
2
3
这不是问题。编译器不允许您对未实现它的对象调用Dispose()。
你呢
应该是
为每个对象调用Dispose()
做
实现它(它将通过
如果简单地将对象的创建和使用包装在
|
|
|
3
2
实际上,您必须处理实现IDisposable的对象。 与直接调用Dispose()相反,执行此操作的标准方法是:
|
|
|
4
0
如果我错了,请纠正我。 据我所知,.NET Framework的所有类都是托管的(在程序员看来,尽管使用不足,但它们可能会使用非托管代码),所以理论上你不需要调用Dispose()或using,因为gc会注意这一点。但有时非常建议使用它们,请参阅 IDisposable Interface 和 Which managed classes in .NET Framework allocate (or use) unmanaged memory? 和 http://blogs.msdn.com/b/kimhamil/archive/2008/11/05/when-to-call-dispose.aspx 编辑:(你是对的,noob)为了澄清,我将添加来自 IDisposable接口 建议在以下情况下调用dispose或using:
|