Мне было интересно узнать, как GC
видит Lazy
объект
, т. Е.:
Lazy<Foo> f = new Lazy<Foo>( );
«Ленивая инстанциация» откладывает создание объекта до временик нему фактически обращаются
Есть ли f
здесь корень для объекта?(что означает, что он не будет GC'ed)?
(объект не создан к этому времени ... какой-то другой код поместил в него значение позже)
или
GC видит его как объект без ссылок / без инициализации - и GCe'd его.
Это то, что мне нужно позаботиться?(/ боязнь?)
public class Foo
{
public int ID { get; set; }
public Foo()
{
ID = 1;
}
}