我有这个(仅供说明)C# 代码:
using( new System.IO.MemoryStream() ) {
System.Threading.Thread.Sleep(1000);
}
请注意,此处创建了一个 MemoryStream
,但未明确绑定(bind)到引用。因此,除非因为 using
语句而有一些特殊处理,否则对象没有对它的引用,并且可以在控制离开 using
语句之前甚至可能在 Sleep 之前收集()
完成。
在控制离开 using
语句之前,MemoryStream
是否符合收集条件?
最佳答案
没有。
using
语句编译成一个 finally
block 来处理对象。
因此,它仍然在范围内,直到 block 结束。
关于c# - 如果对象是在 using 语句中创建的且未显式绑定(bind)到引用,则该对象是否符合垃圾回收条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16216765/