C#:用 "using"初始化一个变量

标签 c#

关于以下代码:

using (SqlConnection sqlConnection = new SqlConnection(connectionString))
{
  code...
}

SqlConnection 是否使用“using”初始化,因此它在括号后被取消引用/销毁?

请在必要时更正我的问题。

最佳答案

using 是在对象上正确调用 Dispose() 的语法快捷方式。

大括号中的代码执行完毕后,Dipose() 会自动调用 using 语句中包裹的对象。

在编译时,你上面的代码实际上会被展开为

{
  SqlConnection sqlConnection = new SqlConnection(connectionString);
  try
  {
    // .. code
  }
  finally
  {
    if (sqlConnection!= null)
      ((IDisposable)sqlConnection).Dispose();
  }
}

您可以看到它是多么方便的快捷方式。

关于C#:用 "using"初始化一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1909232/

相关文章:

c# - 在 C# 中保持已编辑 XML 文件的缩进

c# - 大量请求时 StackExchange.Redis 超时

c# - 什么会导致 Dapper cast 失败?

c# - C# 中的模式匹配 F# 中定义的类型

c# - 应用程序域如何用于托管在 Web 或 Windows 应用程序中提供 UI 控件的第 3 方程序集?

c# - SSRS2000 WebService 上的 .Render() 在 SSRS2008 上被什么取代了?

c# - DI 实际上是如何对属性进行注入(inject)的?

c# - 如何对 Visibility 属性进行简单的 XAML (WPF) 条件绑定(bind)

c# - 如何检测数字的持久性何时达到一位数

c# - 为什么这个可枚举列表会分开?