c# - 在 using 语句之外声明资源
问题描述
using
我对 C#语句有疑问。SqlConnection
根据文档,在 using 语句中声明和初始化资源(例如,对象)是最佳实践。我的问题是:如果我只在 using 范围之外声明对象(并将其初始化为 using 语句的一部分),是否完全等于将其声明为using
语句的一部分?我的用例是我需要SqlConnection
在使用范围之外使用一个对象。(我想打电话SqlConnection.ClearPool
给它,以防我遇到一些特定的异常。
解决方案
两种情况是等价的。但是,当您在using 语句的范围之外声明变量时,该变量将在using 语句的范围完成后被释放,但仍保留在范围内。在using 语句的作用域之后意外使用变量可能会导致抛出异常。这被认为是不好的做法,可以避免。我从来没有理由在 using 语句之前声明变量。
推荐阅读
- python - 我们如何在训练过程中显示分割模型产生的预测图像?
- r - 使用偏度和峰度值自定义每个数值密度图的 x 轴标签
- reactjs - React钩子如何确定对象的属性是否已更改
- c - C 预处理器令人困惑的行为
- python - Sql Alchemy:在 before_commit 事件侦听器期间未加载子对象
- java - Spring Boot - 依赖的初始化顺序
- c# - 如何在 C# 中复制这个具有二进制内容主体并包含 .PNG 文件的邮递员请求?
- go - 有没有办法在多个处理程序中使用相同的 request.Body 而无需手动编写大量代码,或者我需要改变我这样做的方式?
- php - 获取关联数组计算的总和
- arrays - 将 VBA 二维数组的给定列复制到工作表列