Перейти к содержанию

Циклические ссылки в коллекциях

Циклическая ссылка возникает, когда объекты начинают ссылаться друг на друга. Это приводит к ситуации, при которой ни один из объектов, участвующих в циклической ссылке, не будет уничтожен. В свою очередь, это является причиной возникновения утечек памяти memory leaks.

Классический пример циклической ссылки:

Данные = Новый Структура;
Данные.Вставить("Ключ", Данные);

Такая структура останется в оперативной памяти, пока не будет перезапущен процесс, в котором эта структура была создана. Циклические ссылки могут быть неявными, т.е. зацикливаться через несколько ссылок. Такая ситуация может быть опаснее, т.к. её очень трудно отследить.

См. также

Экранирование кода

// sonar:CyclicReferencesCollections:off
// sonar:CyclicReferencesCollections:on