gpt4 book ai didi

c# - 重新分配一次性对象变量如何工作?

转载 作者:太空狗 更新时间:2023-10-29 22:33:57 25 4
gpt4 key购买 nike

在 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 中完成

关于c# - 重新分配一次性对象变量如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7590778/

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