gpt4 book ai didi

c# - 在 IDisposable 对象数组中使用 Dispose() 或不使用 Dispose() 元素?

转载 作者:太空狗 更新时间:2023-10-29 20:16:39 28 4
gpt4 key购买 nike

有很多从 .NET 中的函数返回 IDisposable 对象数组或列表的示例。例如,Process.GetProcesses()

  • 如果我调用该方法,我是否有责任在遍历数组的所有成员时对它们进行 Dispose()?
  • 为什么这应该是我的责任,因为我从未创建过对象,而我得到的数组只是指向在我的代码之外创建的对象的指针。

我一直以为Dispose()是创作者的负担。那么这里的正确规则是什么?

最佳答案

没有一般规则。这将取决于情况以及所讨论方法的设计方式,以及“您”是否负责处理您有权访问的对象。这就是文档通常很重要的地方,它可以帮助此类用户了解他们的职责。

I always thought it was the creator's burden to Dispose()

这不可能是严格意义上的。有时,一次性对象的生命周期会超过创建它的代码块的生命周期。虽然当创建者可以处置对象时它最简单,但有时他们根本不可能做到。从方法返回一次性对象时,创建一次性对象的代码通常不可能清理它,因为它的生命周期需要小于一次性对象的生命周期.

关于c# - 在 IDisposable 对象数组中使用 Dispose() 或不使用 Dispose() 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29497980/

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