我阅读了类似问题的公认答案,部分答案是:
当结构作为参数传递时,它们按值传递:它们被复制。现在,您有两个具有相同内部字段的结构,它们都将尝试清理同一对象。一个将首先发生,因此之后使用另一个的代码将开始神秘地失败...然后其自身的清理将失败
这不是同样的问题Dispose()
吗?如果结构可以实现IDisposable
,则不允许它们具有终结器的原因是什么?
如果终结器的全部目的是要Dispose(false)
在程序员忘记调用的情况下调用Dispose()
,而结构可以具有IDisposable.Dispose()
,那么为什么不允许结构的终结器但允许它们用作引用类型呢?
慕运维8079593
开满天机
相关分类