【发布时间】:2012-05-29 07:14:51
【问题描述】:
我对 IDisposable 接口和 C# 中的 using 关键字有点困惑,我们可以在哪些类上使用它。
using (DataSet studentDS = GetMyStudentDS())
{
// here comes some code
}
我发现从 DataSet 类继承的类没有被垃圾收集器最终确定,如果是这样,将其放在 using 块中以便在其工作完成后手动完成是一个好习惯。为了所有人的利益,有人可以简要介绍一下。谢谢。
【问题讨论】:
-
澄清 using 语句不会强制终结器由垃圾收集器运行。 'using' 语句仅保证 IDisposable 对象的 Dispose() 方法将运行。
-
Dataset 有点特殊:stackoverflow.com/questions/913228/… "DataSet 中的 Dispose 方法仅因为继承的副作用而存在——换句话说,它实际上并没有在定稿。”