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 ответов

7 просмотров
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 в шарпе, ты не можешь знать когда у тебя в принципе уничтожится объект

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

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

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
61
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Привет всем. Не знаю, удачный ли чатик я выбрал для вопроса, но он как будто в целом про концепцию фп и конкретно про Haskell. Прочитал, что в целом в мире фп нет идеи мутабел...
Gellert Cringewald
15
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
Как добавить ссылку в Быстрый доступ в Проводнике windows 10? Нашёл, как на power shell сделать, но может есть способ через Дельфи?
А
31
@helgispbru @Dreamer_0x01 @Pathologic93 @webber_12 Не уверен, что вам всем это жутко интересно, но в продолжение недавнего диалога отправлю свои наброски. Хочу понять, правил...
Андрей [aharito] Харитонов
13
Карта сайта