Sky*_*ers 10 c# vb.net dispose using-statement
这是我过去多次问自己的一个问题,因为我使用语句5深度嵌套.
阅读文档并且没有提及关于在块内实例化的其他一次性用品的任何方式,我认为它对于SO档案来说是一个很好的Q.
考虑一下:
using (var conn = new SqlConnection())
{
var conn2 = new SqlConnection();
}
// is conn2 disposed?
Run Code Online (Sandbox Code Playgroud)
显然我有答案...... ;-)
答案是不.仅处理使用声明中的对象
[Test]
public void TestUsing()
{
bool innerDisposed = false;
using (var conn = new SqlConnection())
{
var conn2 = new SqlConnection();
conn2.Disposed += (sender, e) => { innerDisposed = true; };
}
Assert.False(innerDisposed); // not disposed
}
[Test]
public void TestUsing2()
{
bool innerDisposed = false;
using (SqlConnection conn = new SqlConnection(), conn2 = new SqlConnection())
{
conn2.Disposed += (sender, e) => { innerDisposed = true; };
}
Assert.True(innerDisposed); // disposed, of course
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1963 次 |
最近记录: |