УчитываяGarbage Collection объект установка на нуль
public class A
{
public B First { get; set; }
}
public class B
{
public C Second { get; set;}
}
public class C
{
public D Third { get; set; }
}
И где-то в классе у вас есть это
var testClass = new A();
//All the properties have values in it and the class D has a property value that it is holding in to the memory
//testClass.B = new B();
//etc..
Что произойдет, если вы сделали testClass = null
? Что касается ссылки testClass на кучу? А как насчет D, который держит ценность, которую он не может собрать?
EDIT: Просто уточнить, учитывая, что D имеет событие, которое не было отписано и имеет 10 000 обработчиков. Что происходит с testClass = null
?
Что делать, если одно из его свойств ссылается на значение, которое оно не может собрать? Как класс, который он ссылается, и внутри него неуправляемый код? И я опустил значения, но добавил там комментарий, что все свойства были назначены чему-то, а D ссылается на то, что в нем неуправляемый код, который он не может собрать. –
@LeoLorenzoLuis - это будет утечка памяти, если класс с неуправляемой ссылкой не реализует финализатор. Хорошая ссылка: http://www.codeproject.com/Articles/319826/IDisposable-Finalizer-and-SuppressFinalize-in-Csha –
@RobertLevy Обновлен мой вопрос, да, это мой вопрос, что произойдет, если я сделаю testData = null, и есть утечка памяти? –