gpt4 book ai didi

c# - 在 'using' 语句中使用各种类型 (C#)

转载 作者:IT王子 更新时间:2023-10-29 04:12:49 27 4
gpt4 key购买 nike

既然 C# using 语句只是 try/finally{dispose} 的语法糖,为什么它接受多个对象仅当它们是同一类型

我不明白,因为它们只需要 IDisposable。如果它们都实现了 IDisposable,应该没问题,但事实并非如此。

具体我习惯写

using (var cmd = new SqlCommand())
{
using (cmd.Connection)
{
// Code
}
}

我压缩成:

using (var cmd = new SqlCommand())
using (cmd.Connection)
{
// Code
}

我想进一步压缩成:

using(var cmd = new SqlCommand(), var con = cmd.Connection)
{
// Code
}

可是我做不到。有人会说,我可能会写:

using((var cmd = new SqlCommand()).Connection)
{
// Code
}

因为我需要处理的只是连接而不是命令,但这不是重点。

最佳答案

不过你可以这样做:

using (IDisposable cmd = new SqlCommand(), con = (cmd as SqlCommand).Connection)
{
var command = (cmd as SqlCommand);
var connection = (con as SqlConnection);
//code
}

也许这会让您满意。

关于c# - 在 'using' 语句中使用各种类型 (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/966086/

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