Consider the following classes in C#:
class A
{
public B b;
}
class B
{
public A a;
}
Later:
{
A a = new A();
B b = new B();
a.b = b;
b.a = a;
}
The question: When execution falls out of this scope, will either instance be garbage collected, as there is still a reference to each of them, held by the other?