gpt4 book ai didi

c# - 使用一次性对象的类的层次结构。在所有这些上实现 IDisposable?

转载 作者:可可西里 更新时间:2023-11-01 09:08:18 24 4
gpt4 key购买 nike

我有一个使用文件流的类。它需要在应用程序关闭时关闭流,所以我让类实现 IDisposable。

那个类是另一个类的成员,另一个类是另一个类的成员等等。一直到我的主应用程序。

因此,我是否必须在所有 这些类上实现 IDisposable?

如果我将来更改我的文件实现以便它在每次写入后关闭文件怎么办?我现在有一整套无缘无故实现 IDisposable 的类。

我想我对将 IDisposable 语义 pry 入不需要它们的类中感到不舒服,除了链下的一些轻微实现细节之外。有什么解决办法吗?

最佳答案

通常,如果您的类型包含实现了 IDisposable 的成员,则该类型也应该实现 IDiposable。这是实现 IDisposable 模式的最简单方法。

我使用的一个异常(exception)是,如果我的类型契约(Contract)包含一个方法,该方法 1) 必须被调用并且 2) 表示 IDisposable 资源的使用结束。在那种情况下,我觉得不实现 IDisposable 而是使用该方法调用 Dispose

很舒服

关于c# - 使用一次性对象的类的层次结构。在所有这些上实现 IDisposable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8185029/

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