c# - 带有数据集的 C# 中的 "using"关键字

标签 c# .net interface dataset

我对 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/

相关文章:

c# - 了解接口(interface)

c# - 如何在wpf应用程序中显示网页的信息

c# - 仅更改列表框的 DataValueField?

c# - Windows窗体背景透明,无法点击

c# - 如何使用WCF和MSMQ在C#中实现单发布者和多订阅者异步消息系统?

.net - 为 Intellisense 的 C# 注释添加换行符

json - golang 将接口(interface)数组转换为字符串

c# - 在 C# 中使用正则表达式分组的子字符串

.net - 如何检查两个位掩码之间是否存在公共(public)位?

Golang 接口(interface)方法链接