C # сборщик мусора перекрестная ссылка - PullRequest
2 голосов
/ 05 мая 2010

Освободит ресурсы сборщика мусора для объекта / класса с перекрестными ссылками, на который больше нет ссылок из основной программы. Например -

class class1
{
    class2 m_RefClass2;
}
class class2
{
    class1 m_RefClass1;
}

class class3
{
    public class3()
    {
        class1 obj1 = new class1();
        class2 obj2 = new class2();
        obj1.m_RefClass2 = obj2;
        obj2.m_RefClass1 = obj1;
    }
}

1 Ответ

6 голосов
/ 05 мая 2010

Да. Сборщик мусора .NET не просто подсчитывает ссылки (в этом случае такое расположение заставит оба класса поддерживать друг друга). Любой объект, который не является «корневым» (что означает отсутствие ссылочного пути к объекту из корневого объекта GC), пригоден для сбора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...