Соберите членов объекта - PullRequest
0 голосов
/ 01 июля 2019

Я отлаживаю некоторый код, где дикое NullReferenceException появляется «случайно». Исключение бросает в соответствии с foreach. Коллекция 'items' не равна нулю. Теоретически, ни одно из «значений» не является нулевым. Это просто невозможно.

Можно ли GC удалить член объекта, не удаляя этот объект? Это единственный ключ, который остается. Итак:

  • Объекты в списке 'items' не равны нулю
  • Некоторые из них имеют значения членов, которые являются нулевыми. Где значения были назначены с ненулевыми коллекциями

Пример кода для визуализации ситуации:

if(items.Any(item => item.Condition))
    return;
foreach (var value in items.SelectMany(item => item.Values).Distinct())
{
     Console.WriteLine(value);
}

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

...