c# - 空 Dispose() 方法 C#
问题描述
我刚刚开始学习 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
,它可能更有意义 - 但同样:这又回到了多态性。
推荐阅读
- optaplanner - 为什么 Optaplanner 不允许在模拟退火中配置衰减率?
- c# - Random.Range 总是返回相同的值
- javascript - reactjs如何获取url的主机名
- discord - 如何保存用户的角色历史
- javascript - 无法为新创建的 div 设置或创建“className”属性
- python - 是什么导致“检查失败:ret == 0 (11 vs. 0)通过 pthread_create() 创建线程失败。” 在张量流中
- python - python cv2.imshow() 适用于 root,但不适用于 raspberry pi 上的其他用户
- sql - 如何根据postgresql中另一列的最小值和最大值拆分列
- sql - 如何从表中获取两个主键作为单行
- sql - 寻找非云 RDBMS 以导入分区表(CSV 格式)及其目录结构