gpt4 book ai didi

c# - 我应该在这里实现 IDisposable 吗?

转载 作者:太空狗 更新时间:2023-10-29 19:52:46 26 4
gpt4 key购买 nike

我调用 SQL Server 的方法返回一个 DataReader 但由于我需要做的 - 将 DataReader 返回到位于页面代码中的调用方法- 后面 - 我无法关闭调用 SQL Server 的方法类中的连接。因此,我没有 finally 或 using block 。

配置资源的正确方法是使类实现 IDisposable 吗?或者,我是否应该显式处置来自调用者的非托管资源(类级字段)?

编辑:我将数据读取器发回,因为我需要将特定数据从数据读取器绑定(bind)到列表项控件,所以在调用类(代码隐藏页面)中,我这样做:

 new ListItem(datareader["dc"]); (along those lines).

最佳答案

我会说是的,实现 IDisposable。据我所知,使用它的主要原因之一是当您不能足够信任对象的用户自己正确地完成它时。这似乎是一个主要的候选人。

话虽这么说,但您的架构存在问题。为什么要将 DataReader 本身发送到页面,而不是调用一个方法通过返回必要的内容来为您完成这件事(包括相关的清理)?如果有必要让实际读者访问该页面,那就这样吧。

关于c# - 我应该在这里实现 IDisposable 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2867661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com