Help me understand the GC in depth - C#