gpt4 book ai didi

.net - 什么是 .NET 对象生命周期?

转载 作者:行者123 更新时间:2023-12-03 21:01:55 25 4
gpt4 key购买 nike

.NET 中对象的对象生命周期是什么?

据我了解是:

  • 对象已创建 - 调用的构造函数(如果存在)
  • 使用的方法/属性/字段
  • 对象被破坏 - Dispose 调用(如果存在)
  • GC 在某些时候调用的析构函数
  • 最佳答案

    Dispose 不会被自动调用;您需要调用它,或使用 using 块,例如。

    using(Stream s = File.OpenRead(@"c:\temp\somefile.txt"))
    // Do something with s

    终结器只有在存在时才会被 GC 调用。使用终结器会分 2 个步骤收集您的类;首先将对象放入终结器队列,然后调用终结器并收集对象。没有终结器的对象直接收集。

    指导方针是 Dispose 摆脱托管和非托管资源,终结器只清理非托管资源。当 Dispose 方法释放了非托管资源时,它可以调用 GC.SuppressFinalize 以避免对象长时间存在以放入终结器队列。见 MSDN以获得正确的处置模式样本。

    关于.net - 什么是 .NET 对象生命周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/995408/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com