【发布时间】:2009-11-27 17:08:12
【问题描述】:
假设我有两个对象:
对象1,对象2
当我执行以下分配时:
object2.Foo = object1.Foo; //Edit: where Foo is a reference type
垃圾收集器是做什么的:
- 它是否收集 object1,同时保留分配给 object2.Foo 的值?
- 或者,由于 object2.Foo 引用了 object1.Foo,object1 是否会持续存在直到 object2 被收集?
- 或者垃圾收集是否做一些完全不同的事情,如果是,请解释一下?
谢谢!
【问题讨论】:
-
Foo是对象还是值类型? -
您的问题令人困惑,因为它以谎言开头。 “假设我有两个对象”。好的,这两个对象是什么?在我看来,您有四个对象——object1 引用的对象、object2 引用的对象、object1.Foo 引用的对象和object2.Foo 引用的对象。有两个对象,还是四个?
标签: c# .net garbage-collection