Какие из этих объектов подходят для сборки мусора?

Это вопрос, который мне недавно задали на собеседовании: Какие« случайные »объекты будут собраны во время вызова« 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 должен работать и как следует обрабатывать слабые ссылки.

Однако мой интервьюер хотел услышать кое-что еще.

12
задан Peter Olson 20 November 2011 в 01:52
поделиться