On Friday, 25 May 2012 at 14:35:58 UTC, Andrei Alexandrescu wrote:
What happens in C# if an object A that has a field referring to object B, and the object B has in turn a field referring to object A? That is: What happens then? Will the GC nullify references to destroyed objects, or will it put them in a zombie state?
Depends. If it's a _manual_ disposal, everything is fine -- neither is GC'd yet. If it's an _automatic_ disposal (a.k.a. garbage collection), then the cross references must not be used. I believe their contents are either undefined or null, but in either case, you don't worry about disposing them because the objects will take care of themselves.