【问题标题】:close, dispose, finalize, GC, Idisposable,.... have you got a clear description of them?close, dispose, finalize, GC, Idisposable,....你对它们有清楚的描述吗?
【发布时间】:2010-11-14 23:54:29
【问题描述】:

我对关闭、处置、最终确定、GC、Idisposable 完全感到困惑。 哦,你能把它们的详细描述发给我吗?

【问题讨论】:

    标签: c# garbage-collection dispose idisposable finalize


    【解决方案1】:

    这是一个相当大的话题。我可以推荐一下 Richter 的书CLR via C#。它详细介绍了您提到的所有问题。

    非常简短的翻译:

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

    更多细节请查阅本书。 Joe Duffy 的This rather elaborate blog entry 对于理解 IDisposable 和终结器也非常有用。

    【讨论】:

    • 谢谢 Brian,我们什么时候应该为一个类实现 finalize 方法?还是真的有必要实施它?
    • 我已经更新了我的答案,链接到 Joe Duffy 对这个问题的出色处理,所以请看一下。简短的回答是:你应该很少使用终结器。如果您的课程只使用托管资源,您很可能不需要终结器。
    • joe 博客的链接不再指向该帖子。可以更新一下吗?
    猜你喜欢
    • 2022-01-18
    • 2018-08-15
    • 2011-05-25
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 2011-03-31
    • 2012-02-05
    相关资源
    最近更新 更多