Вопросы на собеседование .NET и C#
Популярный список вопросов для .NET-разработчиков собран в статье 150+ вопросов по .NET (ITVDN) — перевод подборки DOU. Ниже — где в энциклопедии искать ответы и краткие формулировки по темам, которые часто задают на интервью, но размазаны по нескольким главам.
Общая подготовка к интервью: техническое собеседование, корректные вопросы. Расширенный Q&A по C# — в лаборатории вопросов.
Как пользоваться
- Найдите уровень (Junior / Middle / Senior) и тему.
- Перейдите по ссылке на учебную статью — там развёрнутый ответ.
- Если в таблице стоит «ниже» — краткий ответ есть в этом файле.
Junior — общее и смежные темы
| № | Вопрос | Где в энциклопедии |
|---|---|---|
| 1–4 | ООП, наследование, лямбды, рекурсия | ООП в C#, ООП, лямбды |
| 5 | Многопоточность, классы | Асинхронность и потоки |
| 6–7 | JSON, REST | Сериализация, сеть, как работают сайты |
| 8 | SPA | Веб и API, фронтенд-контекст |
| 9 | GoF-паттерны | Паттерны проектирования |
| 10 | GET и POST | HTTP |
| 11 | Docker | Контейнеризация |
| 12 | Unit и интеграционные тесты | Тестирование, интеграционные тесты ASP.NET |
Junior — платформа .NET и C#
| № | Вопрос | Где в энциклопедии |
|---|---|---|
| 13–15 | Exception, try/catch/finally, call stack | Исключения, иерархия, стек вызовов |
| 16 | ASP.NET | ASP.NET, платформа .NET |
| 17 | Типы Action filters | ASP.NET MVC pipeline (раздел ниже) |
| 18 | Web Service | Веб-сервисы (ASMX, WCF, REST) |
| 19–20 | CLR, GC (базово) | Платформа .NET, архитектура .NET |
| 21–22 | Delegate и Action | Делегаты |
| 23 | LINQ | LINQ, справочник LINQ |
| 24 | namespace | Пространства имён |
| 25–35 | Типы, nullable, boxing, коллекции, yield | Типы, стек/куча, коллекции, yield |
| 36–44 | Классы, struct, const/readonly, new/override | ООП, преобразования |
| 45–47 | async/await и потоки | Асинхронность |
| 48–50 | SQL, JOIN | Основы БД, SQL |
| 51–53 | Unit-тесты | Разработка и отладка |
Типы фильтров ASP.NET Core (вопрос 17)
В MVC цепочка фильтров: Authorization → Resource → Action → Exception → Result (и зеркальные стадии «After»). Атрибуты: [Authorize], [ValidateAntiForgeryToken], [ServiceFilter], кэширование результата и т.д.
В Minimal API аналог — endpoint filters (IEndpointFilter). Подробнее: ASP.NET, справочник ASP.NET.
Middle — .NET и C#
| № | Вопрос | Где в энциклопедии |
|---|---|---|
| 54–55 | HTTP-запрос в браузере, HTTPS | Сайты и HTTP, безопасность, JWT |
| 56 | SOLID | Проектирование |
| 57 | Сериализация | Сериализация |
| 59 | DI | Внедрение зависимостей |
| 60 | Cohesion / coupling | Архитектура |
| 61 | IaaS / PaaS / SaaS | Облака |
| 63–65 | Паттерны, Singleton, Strategy | Паттерны |
| 66–69 | Распределённые системы, идемпотентность | Интеграция |
| 70 | async и параллелизм | Асинхронность |
| 71 | Неперехватываемые исключения | Исключения |
| 72 | .NET Standard и Core BCL | Архитектура .NET (раздел .NET Standard) |
| 73 | LINQ отложенное/немедленное | LINQ, справочник LINQ |
| 74–75 | ConfigureServices, Transient/Scoped | DI, ASP.NET |
| 76–78 | Kestrel, MVC pipeline, кэш API | ASP.NET, справочник |
| 79–82 | Стек/куча, GC, using, LOH | Стек и куча, GC, ресурсы |
| 83–109 | Generics, рефлексия, коллекции, IEnumerable/IQueryable | Generics, рефлексия, коллекции, LINQ |
| 110–118 | БД, EF | SQL, ORM, EF Core — первая программа, ADO.NET / Dapper |
| 119–121 | ConfigureAwait, потоки HTTP, ThreadPool | Асинхронность |
.NET Standard и BCL (вопрос 72)
- .NET Standard — спецификация общего API для библиотек (совместимость Framework / Core / Xamarin). Не среда выполнения.
- BCL (Base Class Library) — реализация
System.*в конкретной платформе (.NET Framework, .NET 8/10, …).
Сейчас новые библиотеки обычно целятся в net8.0 / net10.0, а не в netstandard2.0. Подробнее: архитектура .NET.
Senior — .NET и C#
| № | Вопрос | Где в энциклопедии |
|---|---|---|
| 122–130 | AOP/FP, слабая связность, performance, cross-cutting | ООП, производительность, паттерны |
| 131–133 | CPU/IO-bound, маршалинг, async подробно | Асинхронность, справочник C# |
| 134 | lock и struct | Асинхронность, справочник |
| 135–136 | Expression Tree, GC поколения | Метаданные, GC |
| 137–140 | Трассировка API, секреты, CI/CD, CORS | ASP.NET, конфигурация, DevOps |
| 141–147 | Generics, immutable, IEnumerable, Stack | Generics, коллекции, итераторы |
| 148–156 | БД | Базы данных |
| 157–164 | Микросервисы, очереди | Интеграция, Resilience |
| 165–168 | Azure | Облака |
Маршалинг (вопрос 132)
Маршалинг — преобразование данных при переходе между управляемым кодом (CLR) и неуправляемым (Win32 API, COM, нативные DLL): копирование строк, выравнивание структур, соглашения о вызовах. В .NET: P/Invoke (DllImport), COM Interop, атрибут [MarshalAs]. См. справочник C#, производительность и нативные ресурсы.
lock и структуры (вопрос 134)
lock принимает ссылочный объект-синхронизатор. Значимый тип в lock вызовет boxing (аллокация в куче на каждый вход в блок) — технически компилируется, но для hot path это плохая практика. Используйте lock на object, Mutex или SemaphoreSlim, либо безлоковные структуры.
Почему у GC три поколения (вопрос 136)
Эвристика generational GC: большинство объектов умирают молодыми. Gen 0/1 собираются часто и дёшево; Gen 2 — редко, для долгоживущих. Больше поколений даёт убывающую отдачу при росте сложности учёта; меньше — хуже разделение «молодых» и «старых». Подробнее: сборщик мусора.
Чек-лист по разделу C#
Перед собеседованием пройдите чек-лист C# и чек-лист .NET.
Практические задания из статьи
Алгоритмические задачи (калькулятор, простые числа, FizzBuzz, рефакторинг кода) закрываются разделами синтаксис–управляющие конструкции, ООП, LINQ. Задачи по SQL и распределённым транзакциям — в SQL и интеграции.
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). C# как язык платформы .NET - устройство проекта, роль `.cs`-файлов и базовые принципы организации кода. C# — это современный, типизированный язык программирования общего назначения, разработанный корпорацией Microsoft. Справочник-шпаргалка по конфигурациям в C — типы, синтаксис, стандартная библиотека, типовые паттерны. Не заменяет пошаговое обучение. Учебный курс — раздел. Набор советов, правил, принципов и обычаев в разработке на этом языке. Кавычки, точки, запятые, скобки и прочие знаки препинания. Ключевые слова C# - назначение базовых конструкций языка и примеры их применения в типичном коде. Набор функций, которые включены в стандартную библиотеку языка. Пространства имён в C# - организация модулей, `file-scoped namespace` и поддержание чистой структуры кода. манипулировать данными (арифметические, логические, сравнительные операторы). Самый базовый способ ветвления — оператор if. Он проверяет условие и, если оно истинно (true), выполняет блок кода. Обработка исключений в C# - типы исключений, `try/catch/finally` и практики надежного кода. Платформо-зависимые исключения — например, PlatformNotSupportedException используется в кроссплатформенных API, когда функция недоступна на текущей ОС.C# - язык программирования платформы .NET
Что требуется знать перед началом изучения языка программирования C#
Справочник по конфигурациям в C#
Рекомендации по разработке на C#
Синтаксис и пунктуация в C#
Ключевые слова языка C#
Встроенные функции и методы C#
Пространства имён в C#
Управляющие конструкции и логические операторы
Условные выражения и ветвления
Обработка исключений в C#
Иерархия классов исключений в C#