Should IDataReader::Dispose call IDataReader::Close?



我正在实现IDataReader,我想知道Dispose的实现是否应该调用Close

另外,Close应该打电话给Dispose吗?

我的猜测是,Close不应该调用DisposeDispose可以调用Close因为 AFAIK 您应该能够在任何对象中根据需要多次调用Dispose。但这只是一个猜测,我宁愿听听专家的意见。

Close()Dispose()应该做同样的事情(一个应该调用另一个(。
但是,Close()不需要多次调用。

你应该继承基DbDataReader类,而不是自己重新实现整个东西;如果是这样,你需要覆盖抽象Close()

.Dispose()应该只做一件事:释放非托管资源。 因此,当且仅当调用该函数是释放非托管资源的正确方法时,才应调用.Close()。 在这种情况下,我会说这是真的(它将释放数据库连接(,所以你应该调用这个函数。

它们几乎是同一件事,除了 Close 可以调用 1 次以上而不会出现异常。

如果多次使用该对象,请实现 。关闭,如果只有一次,则实现 .Dispose((。

IDataReader在界面中。它并不决定实施。

相关内容

  • 没有找到相关文章

最新更新