В каких ситуациях ссылка будет указывать на объект, который был поставлен в очередь на сборку мусора?

Я читал тему C # по Dispose () и ~ finalize, и когда использовать какие. Автор утверждает, что вам не следует использовать ссылки в ~ finalize, потому что возможно, объект, на который вы ссылаетесь, уже может быть собран. Конкретно заявленный пример: «… у вас есть два объекта, которые ссылаются друг на друга. Если объект №1 собирается первым, то ссылка на него объекта №2 указывает на объект, которого больше нет.»

В каких сценариях экземпляр объекта будет в состоянии, когда он имеет ссылку в памяти на объект, который хранится в GC? Я предполагаю, что существует как минимум два разных сценария: один, где ссылка на объект указывает на объект, и второй, где ссылка на объект указывает на ссылку на другой объект (например, когда он был передан по ссылке в методе).

7
задан chopperdave 29 February 2012 в 02:49
поделиться