ch
Feedback
Библиотека задач по C# | тесты, код, задания

Библиотека задач по C# | тесты, код, задания

前往频道在 Telegram

Задачи и тесты по C# для тренировки и обучения. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/05448a24 Для обратной связи: @proglibrary_feeedback_bot Наши каналы: https://t.me/proglibrary/9197

显示更多
5 019
订阅者
+424 小时
+37
-130
帖子存档
В высоконагруженном .NET сервисе вы часто работаете со строками: конкатенация, парсинг, подстроки. Профилирование показывает большое количество аллокаций и нагрузку на GC. Какой подход будет наиболее правильным для оптимизации? 👾 — Использовать обычный оператор + для конкатенации строк — компилятор сам оптимизирует 👍 — Применить StringBuilder для конкатенации и Span<T>/Memory<T> для работы с подстроками без копирования 🥰 — Перейти на dynamic, чтобы уменьшить количество перегрузок ⚡️ — Вызывать GC.Collect() вручную после больших операций со строками Библиотека задач по C#

В чем разница между Convert.ToString() и ToString()? 👾 — Convert.ToString() обрабатывает значения null, а ToString() — нет 👍 — ToString() выводит данные в соответствии с предоставленным форматом 🥰 — Convert.ToString() обрабатывает только значения null ⚡️ — ToString() обрабатывает значения null, а Convert.ToString() — нет 🐸Библиотека задач по C#

Атрибуты ______ могут использоваться для проверки данных в MVC ASP.NET 👾 — DataAnnotations 👍 — Fluent API 🥰 — DataModel ⚡️ — HtmlHelper Библиотека задач по C#

Что выведет код? 👾 — Caught invalid operation 👍 — Invalid operation 🥰 — Error ⚡️ — Ничего из вышеперечисленного Библиотека
Что выведет код? 👾 — Caught invalid operation 👍 — Invalid operation 🥰 — Error ⚡️ — Ничего из вышеперечисленного Библиотека задач по C#

У вас есть сервис на .NET, обрабатывающий большое количество параллельных запросов к базе данных. При нагрузочном тестировании вы замечаете, что количество потоков резко растёт, а производительность падает. Какой подход будет наиболее правильным для оптимизации? 👾 — Использовать Task.Run вокруг всех вызовов к базе, чтобы явно распараллелить операции 👍 — Применить асинхронный доступ к базе данных (async/await) с использованием I/O-bound операций 🥰 — Увеличить ThreadPool.SetMinThreads, чтобы обрабатывать больше потоков одновременно ⚡️ — Переписать сервис на синхронный код, чтобы избежать overhead от async/await Библиотека задач по C#

Что такое упаковка и распаковка? Пример: «Преобразование типа значения в ссылочный тип называется «упаковкой». Явное преобразование того же ссылочного типа, который создается путем упаковки обратно в тип значения, называется «распаковкой». Библиотека задач по C#

Почему приватный виртуальный метод нельзя переопределить в C#? Потому что приватные виртуальные методы недоступны за пределами класса. Библиотека задач по C#

Нужно задавать разные таймауты на каждый HTTP-запрос при использовании IHttpClientFactory, не ломая длительные стриминговые ответы и не влияя на глобальный HttpClient.Timeout. Какой подход корректный? 👾 — Перед каждым вызовом менять HttpClient.Timeout 👍 — Оставить HttpClient.Timeout по умолчанию и передавать в SendAsync свой CancellationToken из CancellationTokenSource с CancelAfter(...) 🥰 — Оборачивать вызов в Task.Run и ждать Wait(timeout) ⚡️ — Настроить ServicePointManager с глобальным таймаутом 🐸Библиотека задач по C#

Выберите исключения, генерируемые методом GetReponse(), определенным WebRequest 👾 — WebException 👍 — InvalidOperationException 🥰 — ProtocolViolationException ⚡️ — Все вышеперечисленное Библиотека задач по C#

В ASP.NET Core под нагрузкой растут таймауты и длина очереди ThreadPool. В коде встречается вызов внешнего HTTP так: var resp = httpClient.SendAsync(req).Result; // блокировка Какой подход правильный? 👾 — Обернуть вызов в Task.Run(...) 👍 — Увеличить ThreadPool.SetMinThreads(...) 🥰 — Сделать весь путь асинхронным: await httpClient.SendAsync(req, ct) и дальше — только async/await без .Result/.Wait() ⚡️ — Добавить ConfigureAwait(false) к текущему коду 🐸Библиотека задач по C#

Почему lock(this) — антипаттерн? 👾 — Блокирует сборщик мусора 👍 — Публичный монитор: внешний код может тоже его захватить → риск дедлоков; используйте приватный объект (private readonly object _gate = new();) 🥰 — Потому что this не является ссылочным типом ⚡️ — Потому что lock — это всегда spinlock без ожидания Библиотека задач по C#

Нужно запланировать периодическую асинхронную задачу в ASP.NET Core (каждую минуту), чтобы не было overlap, корректно обрабатывалась отмена на shutdown и не было async void ловушек. Что выбрать? 👾 — System.Timers.Timer с async void обработчиком 👍 — Бесконечный цикл с await Task.Delay(60000) без CancellationToken 🥰 — PeriodicTimer и await timer.WaitForNextTickAsync(ct); выполнение шага завершать перед следующей итерацией ⚡️ — Фоновый поток с Thread.Sleep(60000) 🐸Библиотека задач по C#

Сколько типов модификаторов доступа в C#? 👾 — 2 👍 — 3 🥰 — 4 ⚡️ — 5 Библиотека задач по C#

Какое свойство массива используется для получения общего количества элементов в C#? 👾 — Len 👍 — Length 🥰 — Elements ⚡️ — MaxLen Библиотека задач по C#

Почему Task.Result/.Wait() могут «вешать» UI/ASP.NET classic? 👾 — Потому что Task требует STA-поток 👍 — Из-за захвата SynchronizationContext: продолжение ждёт UI-поток, который блокирует синхронное ожидание 🥰 — Потому что GC останавливает мир на ожидании ⚡️ — Потому что Result всегда делает бесконечный spinwait Библиотека задач по C#

Где возможна скрытая аллокация (boxing) при foreach? 👾 — По List<int> 👍 — По IEnumerable<int> поверх List<int> 🥰 — По массиву int[] ⚡️ — В обычном for 🐸Библиотека задач по C#

Что такое Boxing и Unboxing? Упаковка представляет собой процесс неявный преобразования типа значения (хранящегося в стеке) в тип object. Когда тип значения упаковывается средой CLR, она создает оболочку значения внутри System.Object и сохраняет ее в управляемой куче. Обратная операция распаковки осуществляется явным преобразованием object в тип значения. Если упакованный объект не соответствует требуемому типу, то выбрасывается исключение InvalidCastException. 🐸Библиотека задач по C#

😱 Если ваш продукт не умеет отдавать данные в формате, понятном AI-агенту, то вас просто не существует Скрипт не будет кликать по красивым кнопкам в браузере, он уйдёт к конкуренту с нормальным API. Перестроить архитектуру под машинных клиентов — это уже не хайп, а необходимое условие сохранения конкурентоспособности. Как адаптировать продукт и не исчезнуть из выдачи: — интегрировать MCP и A2A-взаимодействие, чтобы агенты могли вас читать; — научиться контролировать стоимость (лимиты, кэш, роутинг между моделями); — настроить AgentOps: трейсинг, логирование и отлов регрессий. Всё это ждёт вас на обновлённом курсе «Разработка AI-агентов». Мы специально сделали фокус на утилитарном инжиниринге и production-ready решениях. Кстати, до 29 марта можно забрать курс с большой скидкой, и стоит поторопиться — мест на потоке всё меньше. Зафиксировать цену и начать деплоить агентов без слива бюджета 👈

Как в C# реализуется паттерн «Lazy Initialization» и какие меры предосторожности необходимо предпринять для его корректного использования в многопоточных приложениях? В C# «Lazy Initialization» реализуется с помощью класса Lazy, который обеспечивает отложенную инициализацию объекта. Для обеспечения безопасности в многопоточных приложениях, важно использовать конструктор Lazy с параметром LazyThreadSafetyMode, который контролирует доступ к объекту и обеспечивает потокобезопасную инициализацию. Это предотвращает создание нескольких экземпляров в многопоточной среде и гарантирует, что объект будет инициализирован только один раз. 🐸Библиотека задач по C#

Что такое String.Length в C#? 👾 — Свойство 👍 — Метод 🥰 — Конструктор ⚡️ — Первое и второе 🐸Библиотека задач по C#