Библиотека задач по C# | тесты, код, задания
前往频道在 Telegram
Задачи и тесты по C# для тренировки и обучения. Учиться у нас: https://clc.to/3e1SCw По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot Наши каналы: https://t.me/proglibrary/9197
显示更多4 964
订阅者
无数据24 小时
-117 天
-2930 天
帖子存档
Чем IAsyncEnumerable<T> отличается от Task<IEnumerable<T>> для стриминга?
👾 — Ничем: оба буферизуют весь результат
👍 — IAsyncEnumerable<T> отдаёт элементы по мере готовности, без полной материализации; Task<IEnumerable<T>> возвращает коллекцию разом
🥰 — IAsyncEnumerable<T> не поддерживает отмену
⚡️ — Task<IEnumerable<T>> всегда быстрее
Библиотека задач по C#
Является ли C# языком программирования с безопасной типизацией?
👍 — Да
👾 — Нет
Библиотека задач по C#
Какое утверждение корректно описывает поведение struct с полями-ссылками (ref fields) и использованием ref struct в C#?
👾 — ref struct можно хранить в куче, если он вложен в класс, но доступ к нему осуществляется только по ссылке
👍 — ref struct запрещает захват в замыканиях, хранение в полях классов и boxing, чтобы гарантировать расположение в стеке
🥰 — Обычный struct с полями-ссылками (ref T) компилятор не ограничивает, и их можно хранить в куче без последствий
🥱 — ref struct может быть полем обычного struct, если оба находятся в куче
Библиотека задач по C#
В высоконагруженном сервисе на .NET вы используете ConcurrentDictionary<TKey, TValue> и вызываете GetOrAdd с фабричным делегатом, который выполняет дорогую инициализацию (например, обращение к БД). Что нужно учитывать?
👾 —
GetOrAdd гарантирует, что фабричный делегат вызовется ровно один раз для каждого ключа
🤔 — Фабричный делегат может быть вызван несколько раз для одного ключа при конкурентном доступе, но в словарь попадёт только одно значение
🥰— ConcurrentDictionary блокирует весь словарь на время выполнения фабрики
⚡️ — Использовать Lazy<TValue> в качестве значения, чтобы гарантировать однократную инициализацию
👍 — Варианты 2 и 4 верны
Библиотека задач по C#ASP.NET Core возвращает IAsyncEnumerable<T> (стриминг ответа). Как корректно отменять перечисление при разрыве клиента?
👾 — Ничего не делать — отмена произойдёт автоматически
👍 — await foreach (var x in stream) { … } без токена
🥰 — await foreach (var x in stream.WithCancellation(HttpContext.RequestAborted)) { … }
⚡️ — Обернуть в Task.Run и ловить OperationCanceledException
🐸Библиотека задач по C#Что выведет код?
👾 — 0 1 2 3 4
👍 — 4 3 2 1 0
🥰 — Случайный порядок чисел от 0 до 4
⚡️ — Compilation error
Библиотека задач по C#
Что верно об async void методах?
👾 — Эквивалентны async Task, их можно ожидать и ловить исключения в вызывающем коде
👍 — Исключения не возвращаются вызывающему; они всплывают в контекст синхронизации/UnhandledException, применять стоит только для обработчиков событий
🥰 — Компилятор запрещает async void во всех случаях
⚡️ — Их можно собирать в Task.WhenAll как обычные задачи
Библиотека задач по C#
Что из перечисленного является типом представления в MVC?
👾 — Partial view
👍 — Executable view
🥰 — Data view
⚡️ — Designer view
Библиотека задач по C#
У вас есть метод в .NET, который синхронно выполняет долгую I/O-операцию (например, обращение к HTTP API). При большом количестве одновременных вызовов приложение начинает “подвисать”. Какой из подходов будет наиболее правильным?
👾 — Обернуть вызов в Task.Run, чтобы выполнять его в пуле потоков
👍 — Переписать метод на async/await и использовать асинхронный HTTP-клиент (HttpClient.SendAsync)
🥰 — Увеличить количество потоков в ThreadPool, чтобы больше операций выполнялось параллельно.
⚡️ — Добавить lock вокруг вызова, чтобы избежать гонок
Библиотека задач по C#
Какой из перечисленных static классов используется для операций ввода/вывода?
👾 — FileInfo
👍 — File
🥰 — Directory
⚡️ — Path
🐸Библиотека задач по C#
🔥 Знакомьтесь с экспертом Proglib.academy: Эмиль Сатаев
Эмиль — эксперт с 8-летним опытом в разработке, который специализируется на внедрении LLM и агентных подходов в реальные коммерческие сервисы. Он точно знает, как проектировать архитектуру так, чтобы ИИ-функции работали стабильно в связке с внешними системами.
🏃♀️ Уже 14 мая Эмиль проведет открытый вебинар!
Обсудим самую «больную» тему: «Почему AI-продукты на базе LLM ломаются и как сделать, чтобы работало».
🗓 Когда: 14 мая в 19:00 (Мск)
Почему Эмиля стоит послушать:
🟣 8+ лет в разработке (Backend и Frontend)
Прошел путь от фулстека до Backend Platform Developer в SMIT.Studio.🟣 Международный исследовательский опыт
Работал исследователем в Институте ИИ НИУ ВШЭ и в Национальном университете Сингапура (NUS).🟣 Преподаватель-практик
Ведет семинары в НИУ ВШЭ, в том числе по проектированию и разработке агентских систем.🟣 Мастер интеграции AI в Backend
Его главная суперсила — умение правильно встраивать LLM через API, выстраивать workflow и агентную логику в сложных распределенных системах.🔗 Зарегистрироваться на вебинар
Какое утверждение о ValueTask верно?
👾 — ValueTask можно безопасно ожидать сколь угодно раз, как и Task
👍 — ValueTask целесообразен, когда результат часто доступен синхронно; его корректно ожидать только один раз (если не преобразован в Task)
🥰 — ValueTask всегда аллоцирует меньше памяти, чем Task, вне зависимости от сценария
⚡️ — ValueTask ковариантен и неявно приводится к Task
🐸Библиотека задач по C#
Какие из перечисленных классов определены пространством имен System.Net?
👾 — Cookie
👍 —CookieContainer
🥰 — FileWebRequest
⚡️ — Все вышеперечисленное
Библиотека задач по C#
Какие из перечисленных классов определены пространством имен System.Net?
Cookie
CookieContainer
FileWebRequest
Все вышеперечисленное
Библиотека задач по C#
🗓 14 мая в 19:00 (Мск) встречаемся в онлайне.
Тема: Почему AI-продукты на базе LLM ломаются и как сделать, чтобы работало.
В кружке выше Эмиль Сатаев рассказал, какие именно проблемы с LLM в проде будем разбирать.
Что в программе:
- Разберем реальные кейсы стартапов и ограничения LLM. - Обсудим рабочие архитектуры: RAG, human-in-the-loop, контроль качества. - Ответим на ваши вопросы и разберем кейсы участников.🎁 Бонусы: в конце вебинара подарим промокод на скидку 10.000 ₽ на курсы и разыграем подписки на полезные AI-сервисы. 👉 Зарегистрироваться на вебинар
Какой из данных операторов позволяет получить адрес переменной?
👾 — ~
👍 — ^
🥰 — &
⚡️ — *
Библиотека задач по C#
Библиотечный метод возвращает ValueTask<T> (часто завершается синхронно). В вызывающем коде результат нужно ждать несколько раз и/или комбинировать с другими задачами через Task.WhenAll. Что делать правильно?
👾 — ValueTask<T> можно await-ить сколько угодно раз — как Task<T>
👍 — Сконвертировать в Task<T> через .AsTask() и уже его ждать/комбинировать
🥰 — Обернуть в Task.Run(...), чтобы получить полноценную Task
⚡️ — Никогда не возвращать ValueTask<T> из публичных API — всегда только Task<T>
Библиотека задач по C#
В проекте на Unity у вас есть несколько систем, активно использующих события (C# events и UnityEvent). Со временем возникают проблемы: трудно отследить подписчиков, растёт количество утечек памяти и появляются неожиданные вызовы. Какой подход будет наиболее правильным для масштабного проекта?
👾 — Использовать глобальные static события, чтобы упростить доступ к ним из любого места
👍 — Перейти на паттерн Event Bus / Message Broker (например, через ScriptableObjects или отдельный сервис), централизуя регистрацию и логирование подписчиков
🥰 — Удалять все события вручную в OnDestroy каждого объекта, избегая централизованных решений
⚡️ — Использовать UnityEvent вместо C# event, так как их можно настраивать через инспектор и это уменьшит ошибки
Библиотека задач по C#
🦾 Почему ваши AI-продукты на базе LLM ломаются (и как это чинить)?
Выкатили ИИ-фичу в прод, а она галлюцинирует, падает или выдает мусор? Приглашаем на открытый вебинар, где разберем реальную боль внедрения LLM-агентов и научимся делать так, чтобы «всё работало».
🗓 Когда: 14 мая в 19:00 МСК
⏱️ Формат: 60 минут мяса + 30 минут ответов на ваши вопросы
🧑🏻💻 Кто вещает: Эмиль Сатаев — Backend Platform Developer (8+ лет в разработке). Человек, который своими руками внедряет LLM и агентные системы в реальные коммерческие сервисы.
🎁 Главный бонус для онлайна:
Только участникам прямого эфира подарим уникальный промокод на скидку 10.000 ₽ на большой курс AgentOps.
👉 Занять место на вебинаре
