在 C# 中,当用新对象重新分配一次性对象变量时,它在内存中如何工作?旧对象占用的内存空间会被新对象覆盖吗?或者我还需要打电话吗Dispose()
释放它使用的资源?
DisposableThing thing;
thing = new DisposableThing();
//....do stuff
//thing.Dispose();
thing = new DisposableThing();
在这种情况下,您有一个插槽/引用和两个实例IDisposable
目的。这两个实例都必须独立处理。编译器不会插入任何魔法IDisposable
。它只会更改引用指向的实例
一个好的模式如下
using (thing = new DisposableThing()) {
// ... do stuff
}
thing = new DisposableThing();
理想情况下,第二次使用thing
也应该在一个时间内完成using
block
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)