首页 > 解决方案 > 在 using 语句之外声明资源

问题描述

using我对 C#语句有疑问。SqlConnection根据文档,在 using 语句中声明和初始化资源(例如,对象)是最佳实践。我的问题是:如果我只在 using 范围之外声明对象(并将其初始化为 using 语句的一部分),是否完全等于将其声明为using语句的一部分?我的用例是我需要SqlConnection在使用范围之外使用一个对象。(我想打电话SqlConnection.ClearPool给它,以防我遇到一些特定的异常。

标签: c#.netidisposablesqlconnectionusing-statement

解决方案


两种情况是等价的。但是,当您在using 语句的范围之外声明变量时,该变量将在using 语句的范围完成后被释放,但仍保留在范围内。在using 语句的作用域之后意外使用变量可能会导致抛出异常。这被认为是不好的做法,可以避免。我从来没有理由在 using 语句之前声明变量。


推荐阅读