Перейти к основному содержимому

Вопросы на собеседование .NET и C#

Разработчику Архитектору

Популярный список вопросов для .NET-разработчиков собран в статье 150+ вопросов по .NET (ITVDN) — перевод подборки DOU. Ниже — где в энциклопедии искать ответы и краткие формулировки по темам, которые часто задают на интервью, но размазаны по нескольким главам.

Общая подготовка к интервью: техническое собеседование, корректные вопросы. Расширенный Q&A по C# — в лаборатории вопросов.


Как пользоваться

  1. Найдите уровень (Junior / Middle / Senior) и тему.
  2. Перейдите по ссылке на учебную статью — там развёрнутый ответ.
  3. Если в таблице стоит «ниже» — краткий ответ есть в этом файле.

Junior — общее и смежные темы

ВопросГде в энциклопедии
1–4ООП, наследование, лямбды, рекурсияООП в C#, ООП, лямбды
5Многопоточность, классыАсинхронность и потоки
6–7JSON, RESTСериализация, сеть, как работают сайты
8SPAВеб и API, фронтенд-контекст
9GoF-паттерныПаттерны проектирования
10GET и POSTHTTP
11DockerКонтейнеризация
12Unit и интеграционные тестыТестирование, интеграционные тесты ASP.NET

Junior — платформа .NET и C#

ВопросГде в энциклопедии
13–15Exception, try/catch/finally, call stackИсключения, иерархия, стек вызовов
16ASP.NETASP.NET, платформа .NET
17Типы Action filtersASP.NET MVC pipeline (раздел ниже)
18Web ServiceВеб-сервисы (ASMX, WCF, REST)
19–20CLR, GC (базово)Платформа .NET, архитектура .NET
21–22Delegate и ActionДелегаты
23LINQLINQ, справочник LINQ
24namespaceПространства имён
25–35Типы, nullable, boxing, коллекции, yieldТипы, стек/куча, коллекции, yield
36–44Классы, struct, const/readonly, new/overrideООП, преобразования
45–47async/await и потокиАсинхронность
48–50SQL, JOINОсновы БД, SQL
51–53Unit-тестыРазработка и отладка

Типы фильтров ASP.NET Core (вопрос 17)

В MVC цепочка фильтров: AuthorizationResourceActionExceptionResult (и зеркальные стадии «After»). Атрибуты: [Authorize], [ValidateAntiForgeryToken], [ServiceFilter], кэширование результата и т.д.

В Minimal API аналог — endpoint filters (IEndpointFilter). Подробнее: ASP.NET, справочник ASP.NET.


Middle — .NET и C#

ВопросГде в энциклопедии
54–55HTTP-запрос в браузере, HTTPSСайты и HTTP, безопасность, JWT
56SOLIDПроектирование
57СериализацияСериализация
59DIВнедрение зависимостей
60Cohesion / couplingАрхитектура
61IaaS / PaaS / SaaSОблака
63–65Паттерны, Singleton, StrategyПаттерны
66–69Распределённые системы, идемпотентностьИнтеграция
70async и параллелизмАсинхронность
71Неперехватываемые исключенияИсключения
72.NET Standard и Core BCLАрхитектура .NET (раздел .NET Standard)
73LINQ отложенное/немедленноеLINQ, справочник LINQ
74–75ConfigureServices, Transient/ScopedDI, ASP.NET
76–78Kestrel, MVC pipeline, кэш APIASP.NET, справочник
79–82Стек/куча, GC, using, LOHСтек и куча, GC, ресурсы
83–109Generics, рефлексия, коллекции, IEnumerable/IQueryableGenerics, рефлексия, коллекции, LINQ
110–118БД, EFSQL, ORM, EF Core — первая программа, ADO.NET / Dapper
119–121ConfigureAwait, потоки 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–130AOP/FP, слабая связность, performance, cross-cuttingООП, производительность, паттерны
131–133CPU/IO-bound, маршалинг, async подробноАсинхронность, справочник C#
134lock и structАсинхронность, справочник
135–136Expression Tree, GC поколенияМетаданные, GC
137–140Трассировка API, секреты, CI/CD, CORSASP.NET, конфигурация, DevOps
141–147Generics, immutable, IEnumerable, StackGenerics, коллекции, итераторы
148–156БДБазы данных
157–164Микросервисы, очередиИнтеграция, Resilience
165–168AzureОблака

Маршалинг (вопрос 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 и интеграции.


См. также

Другие статьи этого же раздела в боковом меню (как на странице «О разделе»).