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

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

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

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

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
Что такое абстрактный класс? В каком случае вы обязаны объявить класс абстрактным?

Абстрактный класс — это класс, имеющий неполную реализацию, которую реализует его неабстрактный наследник. Нельзя создать экземпляр абстрактного класса.
Абстрактные классы нужны для того, чтобы выделять общий функционал от нескольких классов в обособленный класс. От этого отдельного класса потом можно унаследовать либо просто сигнатуру функционала, либо вместе с реализацией.
Класс обязательно нужно объявлять как абстрактный когда он содержит абстрактные члены.


Библиотека собеса по С#
😁1
Что такое readonly struct в C# и в чём его отличие от обычной структуры? В каких случаях стоит использовать readonly struct?

readonly struct в C# — это структура, у которой запрещено изменение состояния после создания. Все поля такой структуры должны быть помечены как readonly, и любые методы не имеют права изменять содержимое полей. Это создаёт гарантию, что экземпляр структуры остаётся неизменным. Главное отличие от обычной структуры заключается в том, что обычная структура может быть изменена после создания, а readonly struct — нет. Использовать readonly struct имеет смысл в ситуациях, когда структура представляет собой логически неизменяемый объект (например, координата, цвет, диапазон), и нужно обеспечить как защиту от случайных изменений, так и избежать лишнего копирования при передаче в методы или возвращении из них.

Библиотека собеса по С#
🤔2🌚2
Можете ли вы вкратце объяснить, что такое пул потоков в C#?

Пул потоков в C# — это, по сути, набор потоков. Эти потоки используются для выполнения задач, не влияя на реализацию основного потока. После завершения реализации поток из пула потоков возвращается в пул потоков.

Библиотека собеса по С#
🤔4👾1
Сколько типов серверных элементов управления поддерживает ASP.NET?

В ASP.NET в основном существует четыре различных типа элементов управления на стороне сервера:

✍️ Элементы управления сервером HTML;
✍️ Элементы управления веб-сервером;
✍️ Элементы управления пользователем;
✍️ Элементы управления проверкой.
Что такое частичные классы в C#?

Частично реализованные классы распределяют функциональность одного класса по нескольким файлам. В процессе компиляции эти несколько файлов объединяются в один. Ключевое слово parts используется для создания разделяемого класса.

public partial Class_name{
// code
}

Методы, интерфейсы и функциональные возможности структур можно легко разделить на несколько файлов. Вы также можете включить вложенные частичные классы.


Библиотека собеса по С#
🤩1
Обсудите важность Asset Bundles в разработке игр на Unity.

Пакеты активов — это пакеты, содержащие ресурсы (текстуры, модели, аудио и т. д.), которые можно загружать динамически во время выполнения. Они позволяют разработчикам уменьшить размер сборки и реализовать потоковую передачу ресурсов, необходимую для мобильных и онлайн-игр, обеспечивая лучший пользовательский опыт и сокращая время загрузки.

Библиотека собеса по С#
Как работает сборка мусора в .NET, и при каких условиях объекты из поколения 2 не будут собраны, даже если система испытывает давление по памяти?

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

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

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

Библиотека собеса по С#
🌚9😁5😢4👍3
Что такое 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
🦾 Что такое абстракция и как она связана с ООП?

Под абстракцией понимается модель реальной жизни, упрощенная для решения конкретной задачи, которая выражена в объекте, то есть любой объект — это абстракция, так как она только частично описывает реальную сущность. Поэтому любой объект можно считать абстракцией и он только частично описывает реальную сущность. Во время преобразования реальных сущностей в объект, он лишается тех характеристик, которые являются несущественными деталями.

Например можно составить упрощенный класс человека, который умеет двигаться, а от всего остального мы абстрагируемся (в данным случае несущественно то, что он умеет дышать, кушать, видеть, слышать и так далее).


Библиотека собеса по С#
🤔5
В чем разница между Update и FixedUpdate в Unity, и какие сценарии лучше всего подходят для каждого из них?

В Unity, Update вызывается один раз за кадр и идеально подходит для большинства обновлений игровой логики, таких как получение ввода пользователя и перемещение персонажей. FixedUpdate, с другой стороны, вызывается с фиксированным интервалом времени и лучше всего подходит для обновлений, связанных с физикой, таких как применение сил, поскольку это обеспечивает более стабильное и предсказуемое поведение физической системы.

Библиотека собеса по С#
👍2
Объясните, что такое Prefabs в Unity 3D?

Prefab в Unity 3D представляет собой готовый шаблон объекта, который объединяет в себе как элементы, так и скрипты. В процессе разработки вы можете перетаскивать префабы из окна проекта в окно сцены, добавляя их в иерархию игровых объектов.

Если потребуется, вы можете редактировать объект после его добавления. Во время выполнения игры скрипт может создавать новые экземпляры объекта в определённом месте или с заданными свойствами трансформации.


Библиотека собеса по С#
🚀 Главная ошибка новичка в ML — строить звездолёт вместо велосипеда

Многие сразу хотят свою Midjourney, но в итоге получают только выгорание.

Успех начинается с «велосипеда»: научитесь предсказывать цены или классифицировать отзывы. Освойте базу, а уже потом стройте «звездолёты».

Наш курс «ML для старта в Data Science» — это и есть тот самый правильный старт от простого к сложному.

👉 Начните правильно

Берёте курс «ML для старта» до конца недели — Python в подарок.

А 21 августа пройдет бесплатный вебинар с Марией Жаровой: узнаете, какие проекты качают скилл, а какие качают ваши нервы.

А какой самый сложный проект вы брались делать в самом начале? 🫢
Является ли тип List потокобезопасной коллекцией?

Тип List может быть безопасным для потоков в случае операций чтения. Однако пользовательский код должен самостоятельно обеспечивать синхронизацию при параллельном добавлении или удалении элементов из коллекции в нескольких потоках.

Библиотека собеса по С#
😁3🤔1
🧠 Выбор первого ML-проекта: чеклист против выгорания

Классика плохих решений в ML — выбрать слишком сложный проект: неделя ковыряния в коде, десятки крашей и никакого результата. Хотите дойти до финиша — начните с простого проекта, который реально можно довести до конца.

Мини-чеклист первого проекта:

1. Понятные данные — без «я нашёл датасет в даркнете, но он на суахили».

2. Измеримая метрика — «точность 92%», а не «ну вроде работает».

3. Объяснимый результат — чтобы не-техлид понял, почему модель ругается на спам.

Наш курс «ML для старта в Data Science» — старт от простого к сложному: теория → практика → проверка → проект в портфолио.

👉 Начать свой путь в Data Science

Оплатите курс по ML до 17 августа — курс по Python в подарок.

📅 Бесплатный вебинар с Марией Жаровой — 21 августа: как выбирать проекты, которые доводят до оффера, а не до психотерапевта.

💾 Сохрани, чтобы не потерять, когда будешь готов(а) начать
Различия между интерфейсом и абстрактным классом в .NET

Интерфейс определяет набор поведения, которым должны обладать классы, его реализующие. Он включает только объявления свойств, методов и событий, без указания модификаторов доступа. Все члены интерфейса обязательно должны быть реализованы в классах, которые его используют.

Абстрактный класс, в свою очередь, предлагает частичную реализацию функциональности и может содержать как абстрактные, так и виртуальные члены, которые должны быть реализованы наследующими его классами. Кроме того, абстрактный класс может содержать поля.
Важно отметить, что ни интерфейс, ни абстрактный класс не могут быть инстанцированы.


Библиотека собеса по С#
👍3
😎 Вы просили — мы сделали. Самый долгожданный анонс этого лета!

Мы открываем набор на второй поток курса «AI-агенты для DS-специалистов»!

На курсе мы учим главному навыку 2025 года: не просто «болтать» с LLM, а строить из них рабочие системы с помощью Ollama, RAG, LangChain и crew.ai.

📆 Старт потока — 15 сентября.

💸 Цена 49 000 ₽ действует только в эти выходные — до 17 августа. С понедельника будет дороже.

👉 Занять место
😁1
Назовите все базовые типы данных, присутствующие в C#.

Существует четыре основных типа данных.

Char
Int
Float
Double

Библиотека собеса по С#
🌚3😢2😁1🤔1