关于以下代码:
using (SqlConnection sqlConnection = new SqlConnection(connectionString))
{
code...
}
Run Code Online (Sandbox Code Playgroud)
SqlConnection是否使用"using"初始化,因此在括号后取消引用/销毁?
请在必要时更正我的提问.
using是正确调用Dispose()对象的语法快捷方式.
在大括号中的代码完成执行后,Dipose()会自动调用包含在using语句中的对象.
在编译时,上面的代码实际上将扩展为
{
SqlConnection sqlConnection = new SqlConnection(connectionString);
try
{
// .. code
}
finally
{
if (sqlConnection!= null)
((IDisposable)sqlConnection).Dispose();
}
}
Run Code Online (Sandbox Code Playgroud)
你可以看到它是一个方便的快捷方式.
是.using语句只是语法糖,并由编译器翻译成类似的东西
SqlConnection sqlConnection;
try
{
sqlConnection = new SqlConnection(connectionString);
// code...
}
finally
{
if (sqlConnection != null)
sqlConnection.Dispose();
}
Run Code Online (Sandbox Code Playgroud)