P
prepair.app
Пройти интервью →
EnglishУкраїнськаРусскийDeutsch
🟣

Junior .NET Backend DeveloperВопросы на собеседовании .NET

Junior · без опыта / до 1 года

Собеседование по .NET идёт между C# как языком и рантаймом под ним — CLR, сборщиком мусора, тем, как на самом деле работает async/await, — а затем переходит к ASP.NET Core и Entity Framework Core, где живёт большинство прикладных вопросов. Ниже вопросы, которые задают чаще всего, каждый с эталонным ответом. Junior: базовая теория, определения и простые практические кейсы.

Попробовать — без регистрации
Готовим вопрос…

Темы для подготовки

Типы C#, LINQ и nullable reference types
Async/await и модель Task
CLR, JIT и сборка мусора
ASP.NET Core: middleware и dependency injection
Entity Framework Core и производительность запросов
Тестирование на xUnit/Moq, Docker и деплой в облако

6 вопросов уровня Junior с ответами

1

В чём разница между value type и reference type в C#?

Ответ

Value type (struct, int, bool, enum) хранит данные напрямую и копируется при присваивании; reference type (class, string, массивы) хранит указатель на кучу, и при присваивании копируется указатель, а не данные. Передача структуры в метод и её изменение внутри меняет только копию, если не передать её через ref.

2

Что такое boxing и unboxing?

Ответ

Boxing оборачивает value type в объект кучи, чтобы использовать его как object, — например, передать int в нетипизированную коллекцию вроде ArrayList. Unboxing приводит его обратно к value type. Каждый box — это выделение в куче, поэтому дженерик-коллекции вроде List<int> предпочтительнее — они никогда не боксят.

3

Какую проблему решают nullable reference types?

Ответ

Они позволяют компилятору отличать string («никогда не null») от string? («может быть null») и предупреждать при разыменовании nullable-значения без предварительной проверки. Это подсказка на этапе компиляции, а не гарантия рантайма, но она ловит большую долю багов с NullReferenceException ещё до запуска кода.

4

В чём разница между `try/catch/finally` и оператором `using`?

Ответ

finally выполняется всегда, было исключение или нет, поэтому туда вручную кладут код очистки. using — это сокращение для try/finally, вызывающего Dispose() у объекта IDisposable — файлового дескриптора, соединения с базой, — гарантируя его освобождение, даже если код внутри бросит исключение.

5

Что делают `Where`, `Select` и `OrderBy` в LINQ?

Ответ

Where фильтрует последовательность по предикату, Select проецирует каждый элемент в новую форму, а OrderBy сортирует её. Их можно сцеплять — list.Where(x => x.Active).Select(x => x.Name).OrderBy(n => n), — и ни один из них не выполняется до перебора результата, это и есть отложенное выполнение, на котором построен LINQ.

6

Что такое dependency injection и как его предоставляет ASP.NET Core?

Ответ

Вместо того чтобы класс сам создавал свои зависимости через new, их передают снаружи — обычно через конструктор, — что делает класс тестируемым и заменяемым. ASP.NET Core поставляется со встроенным контейнером: сервисы регистрируют в Program.cs через AddScoped, AddTransient или AddSingleton, а фреймворк разрешает и внедряет их всюду, где они запрошены.

🦎

Прочитать ответы недостаточно

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

Пройти интервью Junior .NET Backend Developer →
Бесплатно · 3 интервью в месяц

Другие уровни — .NET Backend Developer

Middle .NET Backend DeveloperSenior .NET Backend DeveloperВсе вопросы .NET Backend Developer

Другие специализации

🔍Junior QA Manual🤖Junior QA AutomationJunior Java Backend🐍Junior Python Backend🐘Junior PHP Backend🦫Junior Go Backend🟢Junior Node.js Backend💎Junior Ruby on Rails🔷Junior C++🟨Junior JavaScript