2014-11-15 3 views
3

Я видел некоторые один написал код ИНТ в следующем стиле:ссылка класса и GC цикл в C#

Dictionary<string,SomeClass> dict = new Dictionary<string,SomeClass>(); 
...  
dict.Add(key,someClass);  
...  
dict[key] = null;  
dict.Remove(key); 

Интересно, если dict[key] = null; необходимо. Означает ли это, что информировать GC? Но что someClass больше нигде не упоминается, Это избыточно?

ответ

7

Да, это избыточно. Если вы все равно собираетесь удалить ключ, нет смысла менять запись, чтобы сначала иметь нулевое значение. Это не должно иметь никакого значения для сбора мусора в любом месте.

+0

Спасибо. И если родительский класс находится в распоряжении, необходимо ли ему до сих пор распоряжаться своими дочерними элементами (которые еще не упоминаются)? –

+0

@Sean: Если они реализуют IDisposable, то да, они должны быть удалены ... Предполагая, что «родитель» взял на себя ответственность за свой жизненный цикл. –

Смежные вопросы