Это вопрос, который мне недавно задали на собеседовании: Какие« случайные »объекты будут собраны во время вызова« 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
и соответствующей семантики слабых ссылок. Насколько мне известно, спецификация C # не дает точного описания того, что GC.Collect
должен работать и как следует обрабатывать слабые ссылки.
Однако мой интервьюер хотел услышать кое-что еще.