【发布时间】:2011-04-28 22:57:06
【问题描述】:
假设我有一个带有对象字段的类。当调用 Dispose() 时,我想清除对该对象的引用。私有字段只能设置一次,所以理想情况下我希望它是只读的,但如果它是只读的,当我尝试在 Dispose() 期间释放对对象的引用时会出现编译时错误。理想情况下,我希望安全处置并将 _value 字段标记为只读。这可能甚至是必要的吗?
public class Foo : IDisposable
{
public Foo(object value)
{
_value = value;
}
public object Value { get { return _value; } }
private readonly object _value;
public void Dispose()
{
//Cleanup here
_value = null // causes compile time error
}
}
【问题讨论】:
-
在此示例中,您正在滥用 IDisposable。 IDisposable 旨在清理本机资源以进行确定性清理。