¿Cómo funciona la recolección de basura y el alcance en C #? [duplicar

Esta pregunta ya tiene una respuesta aquí:

Entender la recolección de basura en .NET 3 respuestas

Estoy aprendiendo C #coming de python y deseo saber cómo funciona el recolector de basura C #: descubrí que entendía mucho más sobre Python una vez que descubrí lo que estaba haciendo detrás de escena y deseo evitar cometer el tipo de errores novatos que cometí al principio cuando aprendí pitón

No he podido encontrar ninguna explicación clara y clara de cuándo se recolecta basura un artículo y me quedan preguntas como

"¿Qué le sucede a un objeto cuando su última referencia queda fuera de alcance?" ¿Ese objeto obtiene basura recolectada o todavía está allí cuando vuelves al ámbito en el que se definió? "¿En qué punto se reduce el número de referencias?" Llevándome a preguntarme si incluso utiliza el recuento de referencias o alguna otra técnica ...

Respuestas a estos, o incluso mejor, una descripción general clara de lo que realmente está sucediendo ganará cookies (o votos a favor), y aún mejor si su respuesta lo compara con la forma en que Python hace las cosas. No me interesa cuál es mejor, solo los detalles. También responde en mi publicación original en programmers.stackexchange sería muy apreciado ...

Respuestas a la pregunta(5)

Su respuesta a la pregunta