读完线程Is SqlCommand.Dispose enough?Closing and Disposing a WCF Service之后,我想知道对于SqlConnection这样的类,或者从Stream类继承的几个类中的一个类,关闭Dispose而不是关闭有关系吗?

推荐答案

我想澄清一下这种情况.

According to Microsoft guidelines, it's a good practice to provide Close method where suitable. Here is a citation from Framework design guidelines

除了Dispose()之外,考虑提供方法Close(),如果在该区域中关闭是标准术语.进行此操作时,让Close实现与Dispose相同非常重要...

在大多数情况下,CloseDispose方法是等效的.在SqlConnectionObject的情况下,CloseDispose之间的main difference是:

一个应用程序可以调用Close多个 不止一次.也不例外 已生成.

如果你调用Dispose方法

也就是说:

  • If you use connection object one time, use 100. A 101 block will ensure this is called even in the event of an exception.
  • If connection object must be reused, use 100 method.

.net相关问答推荐

在平板电脑上运行我的 Angular 13 和 .Net Api 项目时,它不会向 api 输入请求

AsyncLocal 的语义与逻辑调用上下文有何不同?

在 .NET 中获取执行 exe 路径的最佳方法是什么?

SqlDateTime.MinValue != DateTime.MinValue,为什么?

使用 C# 清除文本文件的内容

如何以编程方式 Select ListView 中的项目?

如何将自定义 UserControl 显示为对话框?

什么是 project.lock.json?

哪个更快:清除集合或实例化新的

如何根据默认样式创建样式?

MemoryStream.Close() 或 MemoryStream.Dispose()

将 StreamReader 返回到开头

Visual Studio 类图不显示关系

如何使用 C# 创建自签名证书?

如何获得 Bin 路径?

如何修复 .NET Windows 应用程序在启动时崩溃并出现异常代码:0xE0434352?

将 Dictionary 转换为匿名对象?

如何向 C# Winforms 中的标签添加提示或工具提示?

在foreach循环中修改列表的最佳方法是什么?

不签署 .NET 程序集有什么问题吗?