Библиотека задач по C# | тесты, код, задания
5.21K subscribers
429 photos
4 videos
429 links
Задачи и тесты по C# для тренировки и обучения.

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

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

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

Наши каналы: https://t.iss.one/proglibrary/9197
Download Telegram
Операторы присваивания не могут быть перегружены.

👍 — Правда
👾 — Ложь

Библиотека задач по C#
👾45
Каковы отличия между Finalize и Dispose?

Dispose предоставляет явный контроль над ресурсами, которые использует объект, в то время как Finalize работает неявно и управляется сборщиком мусора.

Библиотека задач по C#
👍3
Зачем помечать override как sealed?

👾 — Чтобы запретить вызов из другого домена
👍 — Чтобы запретить дальнейшее переопределение и дать JIT шанс де-виртуализировать/инлайнить метод
🥰 — Чтобы сделать метод static
⚡️ — Это обязательно для всех virtual в Release

Библиотека задач по C#
👍26
Почему Task.Result/.Wait() могут «вешать» UI/ASP.NET classic?

👾 — Потому что Task требует STA-поток
👍 — Из-за захвата SynchronizationContext: продолжение ждёт UI-поток, который блокирует синхронное ожидание
🥰 — Потому что GC останавливает мир на ожидании
⚡️ — Потому что Result всегда делает бесконечный spinwait

Библиотека задач по C#
👍22
Что гарантирует readonly struct?

👾 — Что структура хранится только на стеке
👍 — Все поля readonly; методы не могут изменять this, компилятор предотвращает записи и избегает лишних defensive copies для in
🥰 — Автоматическую реализацию IEquatable<T>
⚡️ — Что экземпляры нельзя боксить

Библиотека задач по C#
👍26
Что даёт record struct по сравнению с обычным struct?

👾 — Делает тип ссылочным
👍 — Генерирует структурное равенство, with-копирование и Deconstruct, оставаясь значимым типом
🥰 — Запрещает изменяемые поля
⚡️ — Автоматически реализует IDisposable

Библиотека задач по C#
🥰20👍9🌚1
Чем IQueryable<T> отличается от IEnumerable<T>?

👾 — IQueryable всегда быстрее и работает только в памяти
👍 — IQueryable строит дерево выражений для провайдера и может выполняться удалённо (БД); IEnumerable перечисляет в памяти
🥰 — Они идентичны; различий нет
⚡️ — IEnumerable поддерживает async, а IQueryable — нет

Библиотека задач по C#
👍45
Чем опасен Task.Factory.StartNew по сравнению с Task.Run для offload CPU?

👾 — Он всегда запускает работу в новом процессе
👍 — Наследует TaskScheduler.Current, не разворачивает вложенные задачи, часто требует опций/Unwrap; для фоновой работы предпочтителен Task.Run (ThreadPool, подходящие опции)
🥰 — Он быстрее и безопаснее во всех случаях
⚡️ — Он автоматически применяет ConfigureAwait(false)

Библиотека задач по C#
👍6
🖤 ЧЕРНАЯ ПЯТНИЦА: СКИДКА 40%

Что общего между Black Friday и подготовкой к собесам? Оба случаются раз в год, и оба нельзя пропустить! 😎

🔥 Курсы со скидкой 40% до конца ноября:

🐍 Python
📐 Математика
🤖 AI
🔢 Алгоритмы и структуры

Пока другие покупают кофемашины и телевизоры, инвестируй в себя📈
Что произойдет, если попытаться присвоить значение переменной readonly вне конструктора?

👾 — Ошибка компиляции
👍 — Ошибка выполнения
🥰 — Переменная будет изменена
⚡️ — Переменная станет null

Библиотека задач по C#
👾36🥱1
Как сделать «асинхронный lock» вокруг критической секции?

👾 — lock работает через await
👍 — await semaphore.WaitAsync() с SemaphoreSlim(1, 1) и try/finally Release()
🥰 — Monitor.Enter/Exit поддерживает await
⚡️ — Interlocked гарантирует эксклюзивный доступ ко всей секции

Библиотека задач по C#
👍21
📊 Задача с собеседования

Имеются данные о продажах за последние 12 месяцев. Требуется оценить наличие линейной зависимости между количеством заключённых сделок и объёмом выручки, а также построить прогноз выручки при достижении 150 сделок.


Если не понимаете с какой стороны подступиться к задаче, то пора подтянуть математику.

🎓 Именно этому посвящен курс экспресс-курс «Математика для Data Science» от Proglib Academy:

— работа с векторами и матрицами;
— линейная регрессия и метод наименьших квадратов;
— вероятности, распределения, статистика;
— и многое другое.

Старт: 4 декабря
🔥 Скидка: 40% до конца ноября

👉 Подключиться к курсу
Как логировать в Microsoft.Extensions.Logging с минимумом аллокаций на горячем пути?

👾 — Интерполяция строк: $"User {id} logged in"
👍 — LoggerMessage.Define/DefineScope с кэшированными делегатами (структурированное логирование)
🥰 — Console.WriteLine — самый лёгкий вариант
⚡️ — Создавать новый EventSource на каждое сообщение

Библиотека задач по C#
👍10👾2😢1
Чем BackgroundService отличается от IHostedService?

👾 — Предназначен только для таймеров
👍 — Это базовый класс с циклом ExecuteAsync; IHostedService — лишь интерфейс Start/Stop без цикла
🥰 — Запускается только в Debug
⚡️ — Не поддерживает отмену CancellationToken

Библиотека задач по C#
👍26😍1
Что верно про BackgroundService в .NET?

👾
Это таймер, который сам перезапускает приложение при сбое
👍 — Базовый класс для IHostedService: реализуете долгоживущую работу в ExecuteAsync(CancellationToken), отмена через stoppingToken
🥰 — Запускается только по расписанию Cron
⚡️ — Обязателен в ASP.NET Core для всех контроллеров

Библиотека задач по C#
👍27😁3
Что вызовет await using у типа, реализующего и IDisposable, и IAsyncDisposable?

👾 — Сначала Dispose(), затем DisposeAsync()
👍 — Только DisposeAsync()
🥰 — Только Dispose()
⚡️ — Зависит от JIT, случайный выбор

Библиотека задач по C#
👍21
Что делает await Task.Yield()?

👾 — Переносит работу на отдельный поток пула
👍 — Отдаёт управление планировщику и асинхронно продолжит после yield (в текущем контексте, если он есть); не offload’ит работу
🥰 — Усыпляет поток на один квант
⚡️ — Гарантирует переключение на UI-поток

Библиотека задач по C#
👍19👾1
Media is too big
VIEW IN TELEGRAM
🔥 Закрой пробелы в математике за 8 недель

Валишься на вопросах про математику на собесах?

Proglib Academy запускает курс «Математика для Data Science», чтобы помочь тебе получить вакансию мечты!

🔎 Тебя ждут:

→ топовые эксперты, один из них на видео — Мария Тихонова. Мария — кандидат компьютерных наук, руководитель исследовательского направления SberAI, доцент факультета компьютерных наук и преподаватель НИУ ВШЭ;
→ живые вебинары, на которых можно задать вопросы спикерам;
→ доступ к материалам в записи, если не успели на лекцию и чат;
→ 3 задания с практикой на Python и финальный проект с подробной обратной связью от экспертов курса;
→ актуальные знания: программа разработана в ноябре 2025г;
→ программа без воды — 2 месяца только самого нужного для старта.

👉 Пройди короткий тест и узнай свой уровень математики.

Приятные бонусы:

🎁 скидка 40% до 30 ноября;
🎁 оплати до конца ноября → курс «Школьная математика» в подарок.

🔗 Подробнее о курсе
Что означает ref readonly возврат из метода?

👾 — Можно присвоить новое значение через эту ссылку
👍 — Это ссылка только для чтения на исходные данные; запись запрещена, нельзя возвращать ссылку на временный
🥰 — Это обычная копия значения на стеке
⚡️ — Разрешено только для struct

Библиотека задач по C#
👍19
Что верно про параметрический конструктор без параметров в struct (C# 10+)?

👾 — И new S(), и default(S) всегда вызывают его
👍 — new S() вызовет ваш ctor; default(S)/массивы дадут нулевую инициализацию без вызова ctor
🥰 — Такой конструктор запрещён
⚡️ — В Release поведение неопределённо

🔹 Курс «Программирование на языке Python»

🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

Библиотека задач по C#
👾4👍1
Чем SelectMany отличается от Select в LINQ?

👾 — SelectMany быстрее, но делает то же самое
👍 — SelectMany плющит последовательность последовательностей в одну; Select лишь проецирует, оставляя вложенность
🥰 — SelectMany работает только с массивами
⚡️ — Select автоматически плоским делает коллекции строк

🔹 Курс «Программирование на языке Python»

🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

Библиотека задач по C#
👍28🌚41