C# / .NET задачи и вопросы
الذهاب إلى القناة على Telegram
🎲 Задачи и вопросы с собеседований по .Net/C# разного уровня сложности. Прислать задачу/вопрос в дар: @cyberJohnny Сотрудничество: @cyberJohnny Обсуждаем тут: @netquizcom
إظهار المزيد1 480
المشتركون
لا توجد بيانات24 ساعات
-37 أيام
-1130 أيام
جارٍ تحميل البيانات
القنوات المماثلة
سحابة العلامات
الإشارات الواردة والصادرة
---
---
---
---
---
---
جذب المشتركين
أكتوبر '26أكتوبر '26
أكتوبر '26
+6
في 0 قنوات
سبتمبر '26
+4
في 0 قنوات
Get PRO
أغسطس '26
+15
في 0 قنوات
Get PRO
يوليو '26
+6
في 0 قنوات
Get PRO
يونيو '26
+11
في 0 قنوات
Get PRO
مايو '26
+12
في 0 قنوات
Get PRO
أبريل '26
+10
في 0 قنوات
Get PRO
مارس '26
+14
في 0 قنوات
Get PRO
فبراير '26
+11
في 0 قنوات
Get PRO
يناير '26
+6
في 0 قنوات
Get PRO
ديسمبر '25
+5
في 0 قنوات
Get PRO
نوفمبر '25
+13
في 0 قنوات
Get PRO
أكتوبر '25
+11
في 0 قنوات
Get PRO
سبتمبر '25
+4
في 0 قنوات
Get PRO
أغسطس '25
+2
في 0 قنوات
Get PRO
يوليو '25
+2
في 0 قنوات
Get PRO
يونيو '25
+3
في 0 قنوات
Get PRO
مايو '25
+5
في 0 قنوات
Get PRO
أبريل '25
+8
في 0 قنوات
Get PRO
مارس '25
+8
في 0 قنوات
Get PRO
فبراير '25
+5
في 0 قنوات
Get PRO
يناير '25
+4
في 0 قنوات
Get PRO
ديسمبر '24
+11
في 0 قنوات
Get PRO
نوفمبر '24
+11
في 0 قنوات
Get PRO
أكتوبر '24
+65
في 0 قنوات
Get PRO
سبتمبر '24
+22
في 0 قنوات
Get PRO
أغسطس '24
+34
في 0 قنوات
Get PRO
يوليو '24
+15
في 0 قنوات
Get PRO
يونيو '24
+25
في 0 قنوات
Get PRO
مايو '24
+24
في 0 قنوات
Get PRO
أبريل '24
+24
في 0 قنوات
Get PRO
مارس '24
+29
في 13 قنوات
Get PRO
فبراير '24
+46
في 0 قنوات
Get PRO
يناير '24
+82
في 4 قنوات
Get PRO
ديسمبر '23
+80
في 3 قنوات
Get PRO
نوفمبر '23
+9
في 0 قنوات
Get PRO
أكتوبر '23
+25
في 0 قنوات
Get PRO
سبتمبر '23
+39
في 0 قنوات
Get PRO
أغسطس '23
+25
في 0 قنوات
Get PRO
يوليو '23
+12
في 0 قنوات
Get PRO
يونيو '23
+6
في 0 قنوات
Get PRO
مايو '23
+8
في 0 قنوات
Get PRO
أبريل '23
+14
في 0 قنوات
Get PRO
مارس '23
+15
في 0 قنوات
Get PRO
فبراير '23
+13
في 0 قنوات
Get PRO
يناير '23
+22
في 0 قنوات
Get PRO
ديسمبر '22
+36
في 0 قنوات
Get PRO
نوفمبر '22
+68
في 0 قنوات
Get PRO
أكتوبر '22
+67
في 0 قنوات
Get PRO
سبتمبر '22
+86
في 0 قنوات
Get PRO
أغسطس '22
+182
في 0 قنوات
Get PRO
يوليو '22
+120
في 0 قنوات
Get PRO
يونيو '22
+27
في 0 قنوات
Get PRO
مايو '22
+96
في 0 قنوات
Get PRO
أبريل '22
+28
في 0 قنوات
Get PRO
مارس '22
+10
في 0 قنوات
Get PRO
فبراير '22
+8
في 0 قنوات
Get PRO
يناير '22
+19
في 0 قنوات
Get PRO
ديسمبر '21
+25
في 0 قنوات
Get PRO
نوفمبر '21
+209
في 0 قنوات
Get PRO
أكتوبر '21
+512
في 0 قنوات
Get PRO
سبتمبر '21
+37
في 0 قنوات
Get PRO
أغسطس '21
+22
في 0 قنوات
Get PRO
يوليو '21
+14
في 0 قنوات
Get PRO
يونيو '21
+4
في 0 قنوات
Get PRO
مايو '21
+20
في 0 قنوات
Get PRO
أبريل '21
+19
في 0 قنوات
Get PRO
مارس '21
+17
في 0 قنوات
Get PRO
فبراير '21
+35
في 0 قنوات
Get PRO
يناير '21
+24
في 0 قنوات
Get PRO
ديسمبر '20
+1 436
في 0 قنوات
| التاريخ | نمو المشتركين | الإشارات | القنوات | |
| 27 أكتوبر | +1 | |||
| 26 أكتوبر | 0 | |||
| 25 أكتوبر | 0 | |||
| 24 أكتوبر | 0 | |||
| 23 أكتوبر | 0 | |||
| 22 أكتوبر | +1 | |||
| 21 أكتوبر | 0 | |||
| 20 أكتوبر | 0 | |||
| 19 أكتوبر | 0 | |||
| 18 أكتوبر | 0 | |||
| 17 أكتوبر | 0 | |||
| 16 أكتوبر | 0 | |||
| 15 أكتوبر | +1 | |||
| 14 أكتوبر | 0 | |||
| 13 أكتوبر | 0 | |||
| 12 أكتوبر | 0 | |||
| 11 أكتوبر | +1 | |||
| 10 أكتوبر | 0 | |||
| 09 أكتوبر | 0 | |||
| 08 أكتوبر | +1 | |||
| 07 أكتوبر | 0 | |||
| 06 أكتوبر | 0 | |||
| 05 أكتوبر | 0 | |||
| 04 أكتوبر | 0 | |||
| 03 أكتوبر | 0 | |||
| 02 أكتوبر | 0 | |||
| 01 أكتوبر | +1 |
منشورات القناة
Можно ли записать число в массив строк через переменную object[]?
Что произойдёт при выполнении кода? Нужные using подключены.
object[] values = new string[1];
values[0] = 42;
Console.WriteLine("OK");
👾 — OK — число сохранится как object
👍 — ArrayTypeMismatchException
🥰 — Ошибка компиляции
⚡️ — OK — число превратится в строку
Ответ: 👍 — ArrayTypeMismatchException.
string[] можно присвоить переменной object[] благодаря ковариантности массивов. Но сам массив остаётся массивом строк. Запись int проходит компиляцию, а во время выполнения проверка типа вызывает ArrayTypeMismatchException.
Правило в документации C#
Библиотека задач по C#
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/arrays
| 2 | Изменится ли структура после вызова метода через интерфейс?
Что выведет код? Нужные using подключены.
interface ICounter { void Increment(); }
struct Counter : ICounter
{
public int Value;
public void Increment() { Value++; }
}
class Program
{
static void Main()
{
Counter original = new Counter();
ICounter boxed = original;
boxed.Increment();
Console.WriteLine(original.Value);
Console.WriteLine(((Counter)boxed).Value);
}
}
👾 — 1 и 1
👍 — 0 и 0
🥰 — 0 и 1
⚡️ — Ошибка компиляции
Ответ: 🥰 — 0 и 1.
При преобразовании Counter к ICounter происходит упаковка: в объект помещается копия структуры. Increment изменяет эту упакованную копию. Исходная структура сохраняет Value = 0, а при распаковке boxed получаем Value = 1.
Правило в документации C#
Библиотека задач по C#
https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/types/boxing-and-unboxing | 96 |
| 3 | Изменит ли finally значение, уже выбранное для return?
Что выведет код? Нужные using подключены.
class Program
{
static int GetValue()
{
int value = 1;
try { return value; }
finally { value = 2; }
}
static void Main()
{
Console.WriteLine(GetValue());
}
}
👾 — 1
👍 — 2
🥰 — Ничего: finally отменит return
⚡️ — Ошибка компиляции
Ответ: 👾 — 1.
Выражение return value вычисляется до выполнения finally: результатом становится число 1. Затем finally меняет локальную переменную, но уже выбранное возвращаемое значение от этого не меняется.
Правило в документации C#
Библиотека задач по C#
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/statements | 105 |
| 4 | Какие числа напечатают действия, созданные в цикле for?
Что выведет код? Нужные using подключены.
var actions = new List();
for (int i = 0; i < 3; i++)
{
actions.Add(() => Console.Write(i));
}
foreach (var action in actions)
action();
👾 — 012
👍 — Ошибка компиляции
🥰 — 123
⚡️ — 333
Ответ: ⚡️ — 333.
Все три лямбды захватывают одну переменную i из for. Действия выполняются после завершения цикла, когда i равна 3. Это отличается от захвата переменной foreach в современных версиях C#.
Правило в документации C#
Библиотека задач по C#
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/lambda-expressions | 119 |
| 5 | Что попадёт в результат LINQ после изменения списка?
Что выведет код? Нужные using подключены.
var numbers = new List { 1, 2, 3 };
var selected = numbers.Where(n => n > 1);
numbers.Add(4);
Console.WriteLine(string.Join(", ", selected));
👾 — 2, 3 — запрос запомнил исходный список
👍 — 2, 3, 4 — список читается при переборе
🥰 — 4 — запрос видит только новые элементы
⚡️ — InvalidOperationException
Ответ: 👍 — 2, 3, 4 — список читается при переборе.
Where выполняет отбор при переборе. Добавление произошло до начала перебора в string.Join, поэтому в результат попадёт и 4.
Правило в документации C#
Библиотека задач по C#
https://learn.microsoft.com/en-us/dotnet/api/system.linq.enumerable.where | 135 |
| 6 | 🔥 Middle C# на собеседовании у Senior из европейского highload | 20 октября, 19:00 МСК
Можно знать технологию и всё равно завалить техническое интервью. Часто дело не в знаниях, а в том, как ты отвечаешь и какие детали упускаешь ☝🏻
Александр Моргунов, Senior C# разработчик с 7+ годами опыта в европейском highload, проведёт мок-собеседование в прямом эфире!
Отвечает разработчик-доброволец, вопросов он заранее не знает. После каждого ответа Александр разберёт, что было хорошо, где кандидат потерял баллы и как стоило ответить.
Проверяй себя вместе с кандидатом и узнай, к чему подготовиться до своего собеса.
🚀 Это бесплатно
Эфир проходит в рамках менторской программы ШОРТКАТ для C# разработчиков
Ссылка на эфир в боте 👉 @shortcut_csharp_bot
Реклама.
О рекламодателе. | 195 |
| 7 | checked вокруг вызова защитит умножение внутри другого метода?
Метод Multiply принимает два int и возвращает их произведение в unchecked-контексте. Выполняется выражение checked(Multiply(int.MaxValue, 2)). Пользовательских операторов нет.
Что получится?
👾 — -2
👍 — OverflowException
🥰 — 4294967294
⚡️ — Ошибка компиляции
Библиотека задач по C# | 179 |
| 8 | Record class скопировали через with. Вложенный список тоже скопировался?
У объекта есть свойство Tags — изменяемый список строк. Используется стандартный copy constructor. В нём один элемент. Создали copy выражением original with { } и добавили второй элемент в copy.Tags.
Сколько элементов теперь в original.Tags?
👾 — Два, оба объекта ссылаются на один список
👍 — Один, with копирует весь граф объектов
🥰 — Ноль, исходный список очищается
⚡️ — Ошибка компиляции, record запрещает изменяемые свойства
Библиотека задач по C# | 239 |
| 9 | 👀 Как вы смотрите видео?
Разбираете урок, слушаете интервью фоном или начинаете на телефоне, а продолжаете на большом экране?
Хотим узнать, что делает просмотр удобным для вас. Вспомните последнее видео — ролик, урок, фильм или серию сериала — и расскажите о своём опыте. Если детали не запомнились, можно так и ответить.
🕰️ Опрос займёт около 3 минут.
В результатах сможете сравнить свои привычки с ответами других участников. А разработчики и инженеры видеоплатформы расскажут, что происходит по ту сторону экрана, пока вы смотрите видео.
🔗 Поделиться опытом (https://anketolog.ru/service/survey/fill/direct/1064183/tgoTQDW0?utm_source=socialmedia)
🐸 Библиотека программиста (https://t.me/+CBVsd5bLBFtiNWQy) | 242 |
| 10 | Запрос проходит через несколько сервисов, обращается к базе данных и внешним API. Пользователь видит задержку или ошибку, а по отдельным записям в журналах трудно понять, на каком участке возникла проблема.
20 октября в 20:00 на открытом уроке курса «C# разработчик. Экспертный уровень» разберёте, как OpenTelemetry помогает превратить .NET-приложение из чёрного ящика в наблюдаемую систему.
Рассмотрите наблюдаемость и роль трассировок, метрик и журналов событий в исследовании работы приложения. Узнаете, как эти данные помогают получить целостное представление о пути запроса и искать причины ошибок и задержек.
На практике добавите средства сбора телеметрии в ASP.NET Core-приложение. Создадите собственные трассировки через ActivitySource и метрики через Meter, подключите автоматический сбор телеметрии для ASP.NET Core и HttpClient. Также настроите экспорт метрик в Prometheus.
Урок подойдёт C#/.NET-разработчикам с опытом, которые работают с распределёнными и микросервисными системами. Он будет полезен и тем, кто уже использует средства мониторинга, но хочет разобраться, какие данные собирать из приложения и как интерпретировать их при расследовании проблем.
Урок проведёт Михаил Дмитриев.
Зарегистрироваться: https://vk.cc/d2J0DS
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 | 152 |
| 11 | Приложение собрано, но при запуске .NET всё ещё компилирует код. Почему так происходит и что изменится, если подготовить машинный код заранее?
1 октября в 20:00 на открытом уроке курса «C# разработчик. Экспертный уровень» разберёте JIT и AOT в .NET и попробуете ReadyToRun и NativeAOT на практике.
Проследите путь от C# до IL и машинного кода. Узнаете, какую работу JIT выполняет во время исполнения приложения, и сравните обычную JIT-компиляцию с ReadyToRun и NativeAOT. Рассмотрите, что каждый подход меняет на этапе сборки и запуска.
На практике соберёте одно приложение в нескольких режимах. Сравните получившиеся файлы, размер приложения и время запуска, а затем разберёте результаты. Отдельно обсудите ограничения NativeAOT и сценарии, в которых его применение оправдано.
После занятия вы сможете осознаннее выбирать способ компиляции, самостоятельно собирать приложения с ReadyToRun и NativeAOT и сравнивать их по размеру, времени запуска и особенностям выполнения.
Урок подойдёт .NET-разработчикам, создателям сервисов и приложений командной строки, а также инженерам, работающим с контейнерами и бессерверными вычислениями.
Урок проведёт Виктор Дзицкий.
Зарегистрироваться: https://vk.cc/d1Yapd
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru | 114 |
| 12 | Что выводит Console.WriteLine("Hello".ToUpper());?
👾 — HELLO
👍 — hello
🥰 — Error
⚡️ — Ничего из вышеперечисленного
Библиотека задач по C# | 304 |
| 13 | 😭 Как не потратить недельный лимит AI-кодинга за три дня?
Разберём на вебинаре, как тратить меньше на AI-агентов — без потери качества кода.
🔘 Поговорим о том:
— когда дорогая модель действительно нужна, а когда хватит дешёвой;
— сколько стоит один прогон и куда уходят токены;
— какие задачи можно отдавать субагентам;
— как настроить маршрутизацию моделей;
— что проверять в AI-коде перед merge.
✏️ Покажем всё на конкретных цифрах и вживую: сравним расходы до и после.
⬇️ 18 сентября, 19:00 МСК
⬇️ 1,5 часа · бесплатно
⬇️ Арсений Харланов и Олег Лайок
💬 Пишите в комментариях, где упираетесь в лимиты и на что уходят деньги. Самые залайканные вопросы разберём на вебинаре.
🔗 Зарегистрироваться на вебинар (https://clc.to/lp0GfQ) | 201 |
| 14 | لا يوجد نص... | 256 |
| 15 | ⚡️⚡️Актуальные темы .NET на DotNext 2026
В .NET одновременно происходит много интересного: C# получает новые возможности, .NET 10 меняет расклад между Native AOT и JIT, а в разработке появляются ИИ-агенты, которые берут на себя часть инженерной работы.
На DotNext 2026 (https://dotnext.ru/?utm_source=partner&utm_medium=csharp_problems_lib&utm_campaign=announce&erid=2RanymqYtqZ) разберем как вещи, которые происходят на уровне машинного кода, так и вполне прикладные вопросы архитектуры и разработки.
📅 25–26 сентября, Москва + online
Выбрали 8 тем из программы, среди которых не только доклады, но и хардкорный воркшоп, чтобы показать этот диапазон:
— как заставить Transactional Outbox одновременно быть строгим и параллельным;
— зачем ASP.NET Core модульный монолит и как собрать его без микросервисов;
— где Native AOT выигрывает у JIT в .NET 10;
— что происходит с циклами, inlining и bounds checks в C# и Go;
— как меняется SDLC, когда в команде появляются ИИ-агенты;
— что принесут discriminated unions в C# 15;
— как проектировать асинхронное взаимодействие в распределенных системах (воркшоп).
Все подробности — в карточках и на сайте (https://dotnext.ru/?utm_source=partner&utm_medium=csharp_problems_lib&utm_campaign=announce&erid=2RanymqYtqZ) конференции.
🌟По промокоду csharpproblems — персональные билеты дешевле
→ Программа DotNext (https://dotnext.ru/schedule/table/?utm_source=partner&utm_medium=csharp_problems_lib&utm_campaign=announce&erid=2RanymqYtqZ)
→ Купить билет (https://dotnext.ru/registration/personal/?utm_source=partner&utm_medium=csharp_problems_lib&utm_campaign=announce&erid=2RanymqYtqZ) | 224 |
| 16 | ASP.NET Core API под нагрузкой: как сделать сервис устойчивым к сбоям и росту трафика
Пока пользователей немного, ASP.NET Core API обычно работает быстро и без ошибок. Но с ростом нагрузки начинают проявляться проблемы: отдельные запросы занимают все доступные ресурсы, повторные обращения только увеличивают нагрузку, операции продолжают выполняться даже после отключения клиента, а ошибки во внешних сервисах могут привести к каскадным отказам.
На открытом уроке 3 сентября в 20:00 разберём, как защитить ASP.NET Core API от подобных ситуаций. Возьмём сервис с типичными проблемами, проведём нагрузочное тестирование, найдём узкие места и поэтапно внедрим механизмы защиты. После каждого изменения сравним результаты и посмотрим, как они влияют на время ответа, пропускную способность и количество ошибок. Поговорим о Rate Limiting, контроле числа одновременно выполняемых запросов, использовании CancellationToken, паттернах Timeout и Circuit Breaker для внешних сервисов, а также о кешировании в Redis и о том, как избежать ситуации, когда повторные попытки только усиливают перегрузку системы.
Урок не для тех, кто только начал знакомство с ASP.NET Core и хочет изучить базовый синтаксис. Будет полезен C#-разработчикам, создающим Web API, backend-инженерам, столкнувшимся с ростом нагрузки, и всем, кто хочет перейти от базового использования ASP.NET Core к production-практикам.
После урока вы будете понимать не только какие механизмы доступны в ASP.NET Core, но и когда их стоит применять, чтобы API оставался стабильным даже при высокой нагрузке.
👉 Записаться: https://vk.cc/d0SfKf
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru | 138 |
| 17 | Какое ключевое слово C# используется для изменения данных и поведения базового класса путем замены члена базового класса новым производным членом?
👾 — overrides
👍 — protected
🥰 — base
⚡️ — new
🐸Библиотека задач по C# | 268 |
| 18 | Покупать новый курс каждый раз, когда меняется рабочая задача, — довольно странная механика. Нашли альтернативу 👇 | 253 |
| 19 | Что делает оператор ! (null-forgiving)?
👾 — Добавляет runtime-проверку и бросает NullReferenceException при null
👍 — Лишь подавляет предупреждение анализатора nullable; на рантайм не влияет
🥰 — Навсегда делает тип non-nullable
⚡️ — Автоматически кидает ArgumentNullException
(https://t.me/py_problems_lib)Библиотека задач по C# | 104 |
| 20 | Разработчику нужен стабильный результат, DevOps — контроль инфраструктуры, техлиду — правила для всей команды. Собрали это в одном посте 👇 | 354 |
