4
A
回答
13
new SqlConnection(connectionString)
根据提供的连接字符串创建新的SqlConnection
实例。
SqlConnection cn = ...
其分配给新的局部变量cn
(作用域到using
语句),其保持所构造的连接对象。
using(...)
是一个using
声明 - 它保证了连接末Dispose()
-d,即使有异常抛出(在这种情况下Dispose()
手段将其关闭/释放到池等)
整个代码是本质:
{ // this { } scope is to limit the "cn"
SqlConnection cn = new SqlConnection(connectionString);
try { // the body of the using block
...
} finally { // dispose if not null
if(cn != null) { cn.Dispose(); }
}
}
2
可以确保SqlConnection的是在“使用”范围
4
它排除了SqlConnection
不是不再需要它后结束时被销毁。在这种情况下,SqlConnection
可能会留下一些非托管资源,您应该清理它们。 SqlConnection
执行IDisposable
,这意味着您可以(应该)在完成使用后调用Dispose
。
它基本上是一个速记:
try {
SqlConnection cn = new SqlConnection(connectionString);
// whatever other code
}
finally {
if (cn != null)
{
cn.Dispose();
}
}
当您使用using
的cn
范围也扩大外try
(以finally
)。
如果您想了解更多信息,请查看MSDN's article关于此主题。
1
using语句可以应用于实现接口IDisposable
的对象。 在使用范围的末尾,在对象上调用Dispose。
1
0
这确保在控制离开使用(){..}子句时释放连接。
由于异常,函数返回,从循环中断,转到或正常离开作用域,可能会发生离开。很方便。
相关问题
- 1. 这段代码做了什么?
- 2. 这段代码片断做了什么?
- 3. 这段代码做了什么?
- 4. 这段代码做了什么?
- 5. 这个C++代码段做了什么?
- 6. 这段代码做了什么?
- 7. 这段代码做了什么蛇?
- 8. Normalized cut:这段代码做了什么?
- 9. 这段代码做了什么?
- 10. 这段代码做了什么(C)
- 11. 这段代码做了什么?
- 12. 这段代码做了什么? (awk)
- 13. jQuery:这段代码做了什么?
- 14. 这段代码做了什么?
- 15. C++这段代码做了什么?
- 16. 这段代码做了什么?
- 17. 这段代码做了什么?
- 18. 这段代码做了什么?
- 19. 这段代码做了什么?
- 20. 这段代码做了什么?
- 21. 这段JavaScript代码做了什么?
- 22. 这行代码在这段代码中做了什么?
- 23. 这段代码做了什么,我需要了解
- 24. 这个“__init__”在这段代码中做了什么?
- 25. 这个PHP代码做了什么?
- 26. 这段C++代码在做什么?
- 27. 这段代码在做什么?
- 28. 这段Java代码在做什么?
- 29. 这段C代码是做什么的?
- 30. 这段代码真的在做什么?
严格来说,cn的范围是*外部* try#... – 2010-05-31 07:56:15
谢谢Marc。为更大的利益编辑。 – 2010-05-31 08:04:36