gpt4 book ai didi

c# - 在 `using` 语句中内联创建的所有对象都将被释放吗?

转载 作者:可可西里 更新时间:2023-11-01 08:39:38 25 4
gpt4 key购买 nike

<分区>

这可能在别处得到解答,但经过一些搜索后,我没有在正常的 using 上下文之外找到太多关于该主题的内容。

我很好奇在 using block 中创建的所有 对象是否会像原始对象一样被处理掉。

上下文如下:

通常我会做这样的事情:

using (var conn = new SqlConnection(connectionString))
using (var cmd = new SqlCommand(commandText, conn))
{
//Do everything I need to here
}

我知道 conncmd 此时都超出了范围,并且由于可爱的 using 关键字而被处理掉了。

我很好奇相同的处理规则是否适用于以下语句:

using (var cmd = new (SqlCommand(commandText, new SqlConnection(ConnectionString)))
{
//Do everything I need here
}

cmd 超出范围并被处置时,是否会处置在 using 语句中内联创建的 SqlConnection 对象,因为它与对象相关联?

还有哪个在句法上更受欢迎?我个人认为第二个更干净,但我知道可读性也可能在这里发挥作用。

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