Это вопрос, который меня недавно задали в моем интервью: Какие "случайные" объекты будут собираться во время вызова "GC.Collect()"
String a = new Random().Next(0, 1) ==1 ? "Whatever 1" : "Whatever 2";
String b = new WeakReference(new Random()).Target.Next(0, 1) == 1 ?
"Whatever 1" : "Whatever 2";
GC.Collect();
Я ответил, что это вопрос, специфичный для реализации, и он сильно зависит от реализации GC
и соответствующей слабой ссылочной семантики. Насколько я знаю, спецификация С# не дает точного описания того, что должен делать GC.Collect
и как следует обрабатывать слабые ссылки.
Однако мой интервьюер хотел услышать что-то еще.