一次性使用模式

Ty.*_*Ty. 14 c#

  using (FileStream fileStream = new FileStream(path))
  {
    // do something
  }
Run Code Online (Sandbox Code Playgroud)

现在我知道using模式是IDisposable的一个实现,即设置了Try/Catch/Finally并在对象上调用Dispose.我的问题是如何处理Close方法.

MSDN说它没有被调用,但我已经读过了.

我知道FileStream继承自Stream,这里解释.现在说不要覆盖Close(),因为它是由Dispose()调用的.

那么有些类只是在Dispose()方法中调用Close()或者使用调用Close()吗?

Jon*_*eet 18

using声明知道Dispose(),但Stream.Dispose调用Close(),如MSDN中所述:

请注意,由于向后兼容性要求,此方法的实现与Dispose模式的建议指南不同.此方法调用Close,然后调用Stream.Dispose(Boolean).

  • 噢该死,我已经被雪覆盖了 (2认同)
  • @George:你不是说Skeeted? (2认同)
  • 而且我显然也无法打字. (2认同)

Geo*_*uer 7

仅使用Dispose()调用.Dispose()方法可能会调用Close(),如果它是如何实现的.