gpt4 book ai didi

c# - 空 Dispose() 方法 C#

转载 作者:行者123 更新时间:2023-12-03 23:34:06 24 4
gpt4 key购买 nike

我刚刚开始学习 IDisposable 和 Dispose()。我还在 Dispose() 上阅读了非托管资源的概念和几个用例。

但是,我在我正在研究的一些源代码中遇到了空的 Dispose() 方法。我已经阅读了这个论坛上关于空 Dispose() 的所有帖子,但仍然不明白。

请问有空的 Dispose() 方法的目的是什么,为什么首先实现它?

代码:

public class Counter : IDisposable
{
public double AverageCount { get { return Count.AverageCount; }}
...
public readonly Counter Counter;
internal ReadOnlyCounter(Counter counter)
{
Counter = counter;
}

public void Dispose() { }
}

最佳答案

在给出的示例中,它没有任何作用。

在某些情况下,会出现一个空的 Dispose(),因为该类型以多态方式使用,而 一些实现相同模式的类型可能需要处理- MemoryStream 就是一个很好的例子(对于许多 Stream 类型,处理是必要的 - 所以在基础 Stream 中强制执行它很有用类型 - 但是:MemoryStream 在这里没有什么有趣的东西要说)。

如果空的 Dispose() 方法是 virtual,它可能更有意义 - 但同样:这又回到了多态性。

关于c# - 空 Dispose() 方法 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63352837/

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