C# 这段代码做什么:使用(SqlConnection cn=newsqlconnection(connectionString))
什么是C# 这段代码做什么:使用(SqlConnection cn=newsqlconnection(connectionString)),c#,C#,什么是 using (SqlConnection cn = new SqlConnection(connectionString)) do?确保SqlConnection在“使用”范围结束时被销毁它在不再需要后处理SqlConnection。在这种情况下,SqlConnection可能会留下一些非托管资源,您应该清理它们SqlConnection实现了IDisposable,这意味着您可以(应该)在使用完Dispose后调用它 它基本上是一个缩写: try { SqlConnectio
using (SqlConnection cn = new SqlConnection(connectionString))
do?确保SqlConnection在“使用”范围结束时被销毁它在不再需要后处理
SqlConnection
。在这种情况下,SqlConnection
可能会留下一些非托管资源,您应该清理它们SqlConnection
实现了IDisposable
,这意味着您可以(应该)在使用完Dispose
后调用它
它基本上是一个缩写:
try {
SqlConnection cn = new SqlConnection(connectionString);
// whatever other code
}
finally {
if (cn != null)
{
cn.Dispose();
}
}
当您使用时,cn
的范围也会扩展到try
(到最后
)之外
如果您想了解更多信息,请查看此主题。using语句可应用于实现IDisposable
接口的对象。
在使用范围结束时,对对象调用Dispose
new SqlConnection(connectionString)
根据提供的连接字符串创建新的SqlConnection
实例
SqlConnection cn = ...
将其分配给保存构造的连接对象的新局部变量cn
(作用域为using
语句)
using(...)
是使用
语句的-它确保连接在最后是Dispose()
-d,即使引发异常(在这种情况下Dispose()
意味着关闭它/释放到池中等)
整个代码基本上是:
以下是MSDN文档的一些链接:
.这确保在控件使用(){..}子句离开时释放连接
离开可能是由于异常、函数返回、从循环中断、转到或范围的正常离开而发生的。非常方便
{ // 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(); }
}
}