关闭,处理,敲定,GC,Idisposable,....你有清楚的描述吗?

odi*_*seh 1 c# garbage-collection dispose idisposable finalize

我对关闭,处理,敲定,GC,Idisposable完全感到困惑.哦,你能告诉我一个清楚的描述吗?

Bri*_*sen 5

这是一个相当大的话题.我可以通过C# by Richter 推荐CLR一书吗?它详细介绍了您提到的所有问题.

一个非常简短的翻译:

  • 在一次性类型上,Close通常与Dispose相同.
  • Dispose用于允许确定性地清理未由垃圾收集处理的资源.
  • Finalizer(或者作为C#语言规范的析构函数调用它)是垃圾收集代码在某个时间点调用的清理方法.也就是说,与C++的析构函数不同,这不是在定义明确的时间点完成的.
  • GC是垃圾收集的简称,是指.NET自动清理托管堆上的对象.
  • IDisposable是一个接口,它表明所讨论的类型实现了如上所述的Dispose方法.

有关详细信息,请参阅本书.Joe Duffy的这篇相当精细的博客文章对于理解IDisposable和终结器也非常有用.