если this.somefield ссылается на объект, скажем, X, который инициализируется оператором using, то сборщик мусора сделает X пустым в будущем? - PullRequest
0 голосов
/ 27 мая 2019

есть класс c #, имеющий несколько полей (p1, p2, p3) и в одном из методов, p1 инициализируется как

using(Object X = new Object()){
this.p1 = X ;
}

После закрытия использования блока, в любое время позже сборщик мусора будет собирать X, и this.p1 становится пустым из-за этого

OR

Из-за ссылки на X из this.p1, X никогда не станет нулевым, пока приложение не будет убито?

1 Ответ

1 голос
/ 27 мая 2019

Пока вы работаете в той же области создания X, X никогда не будет элегантным для коллекции.

Пока object, на который ссылается this, будет жив, X никогда не будет элегантным для сбора, потому что this.p1 относится к X.

...