相关疑难解决方法(0)

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

因为C#using语句只是try/finally {dispose}的语法糖,为什么它只接受多个对象,如果它们属于同一类型?

我不明白,因为他们需要的只是IDisposable.如果所有这些都实现了IDisposable,它应该没问题,但事实并非如此.

具体来说,我习惯写作

using (var cmd = new SqlCommand())
{
    using (cmd.Connection)
    {
        // code
    }
}
Run Code Online (Sandbox Code Playgroud)

我压缩成:

using (var cmd = new SqlCommand())
using (cmd.Connection)
{
    // code
}
Run Code Online (Sandbox Code Playgroud)

我想进一步说明:

using(var cmd = new SqlCommand(), var con = cmd.Connection)
{
    // code
}
Run Code Online (Sandbox Code Playgroud)

但我不能.有人会说,我可能写道:

using((var cmd = new SqlCommand()).Connection)
{
    // code
}
Run Code Online (Sandbox Code Playgroud)

因为我需要处理的只是连接而不是命令,但除此之外.

c# types using

29
推荐指数
3
解决办法
9096
查看次数

5
推荐指数
3
解决办法
2919
查看次数