Библиотека собеса по C# | вопросы с собеседований
5.55K subscribers
231 photos
2 videos
1 file
328 links
Вопросы с собеседований по C# и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/4c2f1c3b

Для обратной связи: @proglibrary_feeedback_bot

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
Как работает сборка мусора в .NET, и при каких условиях объекты из поколения 2 не будут собраны, даже если система испытывает давление по памяти?

Сборка мусора в .NET делит объекты на поколения 0, 1 и 2. Объекты в поколении 2 собираются только при полной (Gen2) сборке, которая триггерится при сильном давлении на память или по явному вызову GC.Collect(). Однако объекты из поколения 2 не будут собраны, если на них остаются сильные ссылки, включая кэш, события (если делегаты не отписаны), или если они участвуют в ссылочных циклах, не распознаваемых сборщиком из-за GCHandle, static-ссылок или нативных ресурсов без финализатора.

Библиотека собеса по С#
👍1
Можно ли реализовать несколько блоков catch?

Невозможно реализовать несколько блоков catch. После выполнения правильного кода catch управление переходит к блоку final. После этого реализуется код, следующий за final блоком.

Библиотека собеса по С#
🌚9😁5😢3👍2
Что такое Round Trip в ASP.NET?

В момент включения обработки на стороне сервера, тогда включаются четыре этапа:

1. Пользователь запрашивает веб-форму с веб-сервера.
2. Веб-сервер отвечает указанной веб-формой.
3. Пользователь вводит информацию и отправляет веб-форму на сервер.
4. Затем веб-сервер обрабатывает структуру формы и отправляет результаты обратно конкретному пользователю.

Теперь этап 3 известен как постбэк страницы, в то время как этапы 3 и 4 в совокупности известны как «Round Trip». Можно сказать, что обратный путь включает в себя выполнение полного обхода по сети к веб-браузеру и получение ответа. Веб-приложения используют HTTP для создания соответствия между веб-программой и сервером.


Библиотека собеса по С#
В чём разница в поведении между lock, Monitor.Enter/Exit и ReaderWriterLockSlim в C#, и когда каждый из них предпочтительнее использовать?

lock — синтаксический сахар над Monitor.Enter/Exit с автоматическим вызовом Exit в случае исключений. Monitor даёт больше контроля: можно использовать TryEnter с таймаутом, Pulse/Wait для координации потоков. ReaderWriterLockSlim позволяет нескольким потокам читать одновременно, но блокирует запись эксклюзивно, что повышает производительность при преобладании чтений. lock — для простых критических секций, Monitor — для сложной синхронизации с сигналами и таймингом, ReaderWriterLockSlim — при частых конкурентных чтениях и редких записях.

Библиотека собеса по С#
👍2
В чем разница между dispose и finalize в C#?

Основное различие между Dispose() и Finalize() заключается в том, что Dispose() должен быть явно вызван пользователем, а метод Finalize() вызывается сборщиком мусора при уничтожении объекта.

Библиотека собеса по С#
👍2