c# - 处理未使用的 IDisposable 返回值是否重要?

标签 c# .net return-value dispose idisposable

<分区>

有某些静态方法,例如 Process.Start()File.Create() 构造并返回 IDisposable 实例,这些实例是经常被丢弃。使用这些方法就像它们返回 void 一样正常,如果您不注意,您可能会错过它们甚至根本没有返回值的事实。

我知道最好始终处理 IDisposable 实例。这是否适用于未使用的返回值?您应该始终编写 Process.Start(processPath).Dispose(); 而不是编写 Process.Start(processPath); 吗?

我认为这显然是肯定的,但我不得不再次猜测自己,因为我只看到它在没有 Dispose() 的情况下完成。 C# 是否有一些自动处理这些情况的方法?

最佳答案

在大多数情况下,处理 IDisposable 实例的首选方法是使用 using 语句:

using (var file = File.Create())
{
   //use file instance
}

这个语法糖将确保在您退出 using 语句 block 后显式处理文件实例。在幕后,它实际上将您的代码包装到 try/finally block 中。

关于c# - 处理未使用的 IDisposable 返回值是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49983143/

相关文章:

c# - 将行为附加到 MetroWindow 失败并导致错误的样式

c# - .NET 框架中的线程生命周期

javascript - 模块返回异步初始化的对象

C++ 返回值显示 -858993460

c# - 根据字典集合大小增加进度指示器

c# - C# 4 中静态类型人员的新增功能

.net - asp.net中的实例失败

c# - 如何在 WCF 服务中使用 IDispatchMessageInspector?

c# - Visual Studio 2015 和 IFormatProvider 中的字符串插值 (CA1305)

c++ - g++如何在忽略函数返回值时获得警告