gpt4 book ai didi

c# - using block什么时候调用dispose方法

转载 作者:行者123 更新时间:2023-11-30 19:37:10 24 4
gpt4 key购买 nike

我试图通过放置断点来测试这段代码。我想确保在使用 block 之后调用 dispose 方法并正常释放资源 (SqlCommand)。但是在 using block 的任何地方我都没有处理?

    using (SqlCommand command = new SqlCommand(queryString, connection))
{
command.CommandType = CommandType.Text;
command.Parameters.Add("@OrganizationID", SqlDbType.Int);
command.Parameters["@OrganizationID"].Value = organizationId;
connection.Open();
SqlDataReader sqlDataReader = command.ExecuteReader(CommandBehavior.CloseConnection);

try
{
while (sqlDataReader.Read())
{
//do something
}
}
finally
{
sqlDataReader.Close();
}
}

最佳答案

IDisposableDispose 调用发生在 using block 正常或异常(即通过异常)完成执行之后。

在源代码级调试器中捕获调用的唯一方法是当您拥有 IDisposable 的源代码时 - 在您的情况下它将是 SqlCommand< 的源代码 类。

检查其工作方式的一种简单方法是制作您自己的 IDisposable 实现,将其放入 using block 中,然后观察其行为。在 using block 完成后,应立即调用 Dispose

关于c# - using block什么时候调用dispose方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39212228/

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