Например, если у меня есть иерархическая структура данных:
class Node
{
public List<Node> children;
}
и он заполнен многими уровнями вниз, а затем у одного из родителей:
myNode.children.Clear();
который очистит все ссылки на непосредственных детей - но как насчет всех великих детей, великих детей и т.д., на которые ссылались эти непосредственные дети? Является ли С# достаточно умным, чтобы знать, что они больше не нужны, и они будут собирать мусор?
Я прочитал с использованием привязки данных WPF без реализации интерфейса. INotifyChanged может вызвать утечку памяти: http://blogs.msdn.com/b/micmcd/archive/2008/03/07/avoiding-a-wpf-memory-leak-with-databinding-black-magic.aspx, как это возможно в управляемой среде