170 похожих чатов

Ребзи, вопрос. Смотрите, допустим, есть такой код: public class A {

public B myObj;
}

public class B {}

И есть метод:
public B Foo()
{
var newA = new A();
newA.myObj = new B();

return newA.myObj;
}

Вопрос: будет ли задиспозлен newA после выхода из метода или же GC будет считать, что пока жив myObj, то есть ссылка на newA и его не грохнет? Пасиб

16 ответов

20 просмотров
Dmitriy-Bobrovskiy Автор вопроса

Вот

диспоз не произойдёт, тк Dispose сам вызываешь. А так GC должен грохнуть

Dmitriy Bobrovskiy
Вот

Ты б в пронет закинул, там быстрее бы ответили.

Dmitriy-Bobrovskiy Автор вопроса
Vabka
диспоз не произойдёт, тк Dispose сам вызываешь. А ...

Даже при наличии ссылки живой на внутренний объект?

Dmitriy Bobrovskiy
Даже при наличии ссылки живой на внутренний объект...

если у тебя ещё кто-то будет ссылаться на newA, то newA не будет выкинут

Vabka
если у тебя ещё кто-то будет ссылаться на newA, то...

ну его явно интересует кейс, где никто более не ссылается

Dmitriy Bobrovskiy
Даже при наличии ссылки живой на внутренний объект...

ну так внутренний объект сам по себе живёт

Ilya
ну его явно интересует кейс, где никто более не сс...

ну если никто не ссылается на A, то A удалится

Vabka
ну если никто не ссылается на A, то A удалится

*удалится неизвестно когда - тогда, когда GC захочет

Dmitriy-Bobrovskiy Автор вопроса

Эммм?

???

эт не меня триггерить надо)

Начнём с того, что у тебя тут вообще нету IDisposable, поэтому «задиспозлен» — определённо невалидный термин. Если же ты пытался спросить, будет ли этот объект собран сборщиком, то правильный ответ, как всегда: зависит. В общем случае он может быть собран как после, так и во время выполнения метода, а иногда и до его запуска. В некоторых вариантах JIT/GC может также не создавать объект. Полагаться на это в продакшен коде — не слишком хорошая идея.

У тебя нету RAII в шарпе, ты не можешь знать когда у тебя в принципе уничтожится объект

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта