Vladimir
управление памятью в дотнете делается через IDisposable, деконструкторы насколько я знаю исключительно для защиты от дурака
Anatoly
Anatoly
Vasily
Anatoly
деструкторы (а не деконструкторы, деконструктор это var (a, b) = tuple) имеют ограниченную область применимости и их использование очень нишевое
Danil
Ayrat
Anatoly
мы туда в дебаг моде ассерты кидали
Vladimir
Vasily
Короче, нипанятна
Vasily
При чем тут сетевой стек
Anatoly
вот в сети, где важен перф, я бы деструкторы не использовал. я видел на днях статью, что от этого всё плохо становится
Vasily
Вот у меня в мобилке сетевой стек не использует финализаторы, и память тоже не жрет особо
Vasily
@ExcpOccured , ОБЪЯСНИСЬ
Ayrat
Vasily
Ayrat
То есть как только ты анменеджед хендлы обернул в сейф обертки (дотнет такие даёт), тебе дальше по стеку только диспоуз можно звать
Vasily
Намазано ArraySegment еще
Vasily
Ну в сокетах понятно, что это есть
Danil
@ExcpOccured , ОБЪЯСНИСЬ
Например UDP, есть структура, которая отвечает за запросы к DNS, создать соединение - большая трата ресурсов, а в силу того, что это UDP - гарантии получения ответа у нас нет, поэтому в случае если мы не получили никаких данных, мы можем соответственно деструктурировать такую структуру
Vladimir
так а деструктор зачем? почему не udp.Dispose()?
Anatoly
Vladimir
согласен)
Anatoly
деконструктор - это когда тупл на элементы раскладываешь
Anatoly
Anatoly
Химера такое , говорят
да, она не смогла найти дискретную карточку, дура, запустилась на встроенной и говорит "бля, карточка говно"
Danil
Да деструктор, деструктор
Ayrat
А что за деструктор в сишарпе?
Vasily
Мне кажется, какой-то оверинжиниринг
Anatoly
Ayrat
Который не вызывается на деструкции объекта, а хз когда
Vasily
@omgszer , там задача, кмк, все же унизить людей на собеседовании :)
Vasily
Vladimir
Ayrat
What is destructor?
Destructor is a member function which destructs or deletes an object.
When is destructor called?
A destructor function is called automatically when the object goes out of scope:
(1) the function ends
(2) the program ends
(3) a block containing local variables ends
(4) a delete operator is called 
Danil
Мать моя женщина
Тебе же нужно гарантировано в конечном итоге данные получить
Anatoly
Viacheslav
где-то я читал, что это при создании дотнета ошиблись и с тех пор так и пошло. разница, насколько я помню, в вызове (что-то астоматом вызывается, а что-то надо руками)
Viacheslav
Anatoly
Ayrat
это из С++
Я ж сказал что да, но поведение разное. Деструктор детерминирован, финализатор нет
Vasily
Anatoly
Vasily
Ну т.е. я подозреваю, что финализаторы - не оптимальное решение проблемы
Viacheslav
Ayrat
Vladimir
Ayrat
SupressFinalize, а не SupressDestruction
Vladimir
Ну вот тебе спека по сишарпу
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/classes#destructors
Mikhαil
Ayrat
Ayrat
Фпесду их нейминг
Vladimir
только что узнал что бывают экстернал деструкторы)
Ayrat
Это для интеропа наверное, но да, забавно
Ayrat
Типа ты можешь заставить дотнет вызвать нативный деструктор как финализатор....
Vladimir
Vasily
Но главное в таких замутах - ощущение собственной элитарности
Mark
Mark
это ж просто вопрос на знание какой-то детали в синтаксисе, синьоры занимаются более важными вещами
Danil
Mark
Mark
зачем заучивать все детали как там доставать элемент из конца, какой оператор для этого используется... Если синьору это понадобится то попросит джуна это сделать или зайдет в доки и узнает
Mikhαil
Дайте видос из тру детектив где маканаги говорит «я такой охуенно важный»
Mikhαil
Тут прям к месту будет
Vasily
Я ж грю, элитизм
Vladimir
ну, я скорее второй вопрос одобряю - следит ли человек за состоянием своей технологии
Doge
Вот задачки на подушить:
Doge
Как-то раз на досуге придумал пару небольших задачек про производительность. В каждой из задач два варианта исполнения одного и того же кода, только один из них исполняется сильно медленее другого. Вопрос в том, чтобы обьяснить почему так.
Сами задачи на js, чтобы было легко исполнить их в браузере:
https://jsfiddle.net/djth9oq7/
https://jsfiddle.net/3smxuh1o/
Doge
Дисклеймер: я их на собесах не задаю, если что
Ayrat