.NET垃圾收集

Ach*_*les 0 .net c# garbage-collection

假设我有两个对象:

object1,object2

当我执行以下分配时:

object2.Foo = object1.Foo; //Edit: where Foo is a reference type
Run Code Online (Sandbox Code Playgroud)

垃圾收集器做什么:

  1. 它是否收集object1,同时持有分配给object2.Foo的值?
  2. 或者,object1是否会一直存在,直到object2被收集,因为object2.Foo引用了object1.Foo?
  3. 或者垃圾收集是否完全不同,如果是,请解释一下?

谢谢!

Hen*_*man 6

代码

object2.Foo = object1.Foo;
Run Code Online (Sandbox Code Playgroud)

object1和的状态没有影响object2.它可能对object2.Fooobject2.Foo引用的对象的旧值有效,如果不存在对它的其他引用,则它现在可以是可收集的.