在这样的情况下:

SqlConnection cn = new SqlConnection(
    ConfigurationManager
    .ConnectionStrings["AppConnection"]
    .ConnectionString
);


using (cn) {...}

using()语句是否仍会关闭连接,即使它没有被声明为inusing()语句?

类似于这个问题:SqlConnection with a using clause - calling close on the connection

除了我想知道要不要使用actual连接,而不是copy连接.

推荐答案

是的,但你不应该这么做.

usingdocumentation表示(一直在底部):

您可以实例化资源对象,然后将变量传递给Using语句,但这不是最佳实践.在这种情况下,在控制离开Using块后,该对象仍在作用域中,但可能无法访问其非托管资源.换句话说,它不再是完全初始化的.如果try 在Using块之外使用该对象,可能会导致引发异常.因此,最好在Using语句中实例化该对象,并将其作用域限制为Using块.

var reader = new StringReader(manyLines);
using (reader)
{
    ...
}
// reader is in scope here, but has been disposed

Csharp相关问答推荐

Blazor:计算值或保留为默认值

C#相同名称的枚举方法和normal方法,参数类型不同

一小时后,自定义缓存停止在App Insight中保存

Elasticsearch:当我try 使用c#将嵌套对象添加到filter中时出现问题

Microsoft. VisualBasic. FileIO. FileSystem. MoveFile()对话框有错误?

为什么任务需要在内部使用ManualResetEventSlim?

Blazor Web App WASM的两个独立项目令人困惑

EF核心区分大小写的主键

在集成测试中可以在模拟InMemory数据库中设定数据种子

JSON串行化程序问题.SQLite中的空值

从Base64转换为不同的字符串返回相同的结果

ASP.NET MVC数据批注验证组复选框

EF Core 7-忽略模型绑定中的虚拟属性

我应该为C#12中的主构造函数参数创建私有属性吗?

将字符串类型日期输入(yyyy-mm-ddthh:mm:ss)转换为MM/dd/yyyy格式

为什么在使用JsonDerivedType序列化泛型时缺少$type?

在ObservableCollection上使用[NotifyPropertyChangedFor()]源代码生成器不会更新UI

Xamarin Forms应用程序中登录页面的用户名和密码编辑文本之间不需要的空格

SqlException:无法打开数据库.升级到Dotnet 8后-数据库兼容性版本-非EFCore兼容性级别

嵌套Blazor组件内的验证