我对 IDisposable 接口(interface)和 C# 中的 using 关键字有点困惑,我们可以在哪些类上使用它。
using (DataSet studentDS = GetMyStudentDS())
{
// here comes some code
}
我发现从 DataSet 类继承的类没有被垃圾收集器最终确定,如果是的话,将它放在 using block 中是一个好习惯,以便在它的工作完成后手动完成。有人可以为了所有人的利益简要介绍一下吗?谢谢。
最佳答案
is it a good practice to put that in the using block
是的。作为DataSet实现 IDisposible 接口(interface)。数据集扩展 MarshalByValueComponent类(class)。 MarshalByValueComponent类实现 IDisposable。
任何派生类型也将实现 IDisposable。如果它没有显式实现(换句话说重写 IDisposable.Dispose),将调用基本方法 (DataSet.Dispose)。
关于 Finalizer ,这是一个单独的概念,以确保即使开发人员未能调用 Dispose 方法(或忘记使用 block )也能清除非托管资源。
关于c# - 带有数据集的 C# 中的 "using"关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10794658/