1

通常我会这样做:

using (SqlCommand cmd = new SqlCommand("XXXX", cnn))
{
    using (SqlDataReader dr = cmd.ExecuteReader())
    {
        //xxxxxx  
    }
}

甚至这样:

using (SqlCommand cmd = new SqlCommand("XXXX", cnn))
using (SqlDataReader dr = cmd.ExecuteReader())
{
    //xxxxxx  
}

但是这个呢:

using (SqlDataReader dr = new SqlCommand("XXXX", cnn).ExecuteReader())
{
    //xxxxxx  
}

即使我没有将它分配给变量,它是否会为 SqlCommand 调用 Dispose()?

4

1 回答 1

5

即使我没有将它分配给变量,它是否会为 SqlCommand 调用 IDisposable?

Dispose()不,它会调用SqlDataReader( dr),因为那是表达式返回的对象。

于 2012-10-31T19:06:54.683 回答