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

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

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

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

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
Какое из следующих утверждений верно относительно конструкторов в C#?

👾 — Они могут иметь возвращаемый тип
👍 — Они вызываются при создании объекта
🥰 — Они могут быть приватными
⚡️ — Второй вариант и третий

Библиотека задач по C#
29👍2
В C# есть ключевое слово async/await. Какое утверждение наиболее корректно описывает их использование?

👾 — async делает метод многопоточным автоматически
👍 — async позволяет использовать await, который освобождает поток до завершения задачи
🥰 — await блокирует поток, пока задача не завершится
⚡️ — async гарантирует, что метод всегда выполнится быстрее

Библиотека задач по C#
👍451😢1
В C# чем отличается struct от class?

👾 — Разницы нет, это взаимозаменяемые типы
👍 — struct — value type (хранится в стеке), class — reference type (в куче)
🥰 — struct можно наследовать от другого struct, а class — нет
⚡️ — class быстрее, чем struct, всегда

Библиотека задач по C#
👍58🔥1
В высоконагруженном ASP.NET Core сервисе, вызывающем внешние HTTP-API, при пиках нагрузки растут таймауты, наблюдается socket exhaustion (много соединений в TIME_WAIT). Какой подход наиболее корректный?

👾 — Создавать новый HttpClient на каждый запрос для «чистых» соединений
👍 — Использовать IHttpClientFactory с переиспользованием SocketsHttpHandler, настроив пул соединений, таймауты и политику DNS
🥰 — Оборачивать каждый запрос в Task.Run, чтобы разгрузить поток
⚡️ — Перейти на HttpWebRequest, так как он «ближе к сокетам»

Библиотека задач по C#
👍13🌚1
🔥 Последняя неделя перед стартом курса по AI-агентам

Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место

На курсе:
разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах

📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями

И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»

Промокод на 5.000₽: LASTCALL

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

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

Библиотека задач по C#
👍7
Объясните, что такое GameObject и Component в Unity

В основе Unity лежат GameObjects, которые являются строительными блоками любого игрового сценария. GameObject может представлять различные сущности, например:
а) Персонажи
б) Объекты
в) Камеры
г) Свет и многое другое

Компоненты, с другой стороны, являются элементами, прикрепленными к GameObjects для определения их конкретного поведения или свойств. Unity предлагает широкий спектр встроенных компонентов, позволяющих разработчикам настраивать и расширять функциональность GameObjects. Эти компоненты включают в себя следующее:

a) Rigidbodies
b) Colliders
c) Источники аудио
d) Скрипты
e) Particle Systems и многое другое


🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
ASP.NET Core сервис использует IHttpClientFactory и держит долгоживущие соединения к внешнему API. После смены DNS у апстрима трафик продолжает идти на старые IP. Как правильно исправить?

👾 — Создавать новый HttpClient на каждый запрос
👍 — Настроить у SocketsHttpHandler параметр PooledConnectionLifetime через IHttpClientFactory, чтобы периодически пересоздавать соединения и подхватывать новые DNS
🥰 — Уменьшить HttpClient.Timeout
⚡️ — Включить Expect: 100-continue

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
👍181
Какое ключевое слово C# используется для изменения данных и поведения базового класса путем замены члена базового класса новым производным членом?

👾 — overrides
👍 — protected
🥰 — base
⚡️ — new

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
👾332🥰1
Какое утверждение о ValueTask верно?

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

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
В ASP.NET Core под нагрузкой наблюдается socket exhaustion (много TIME_WAIT/CLOSE_WAIT). Используется IHttpClientFactory. Код упрощённо такой:

var resp = await client.GetAsync(url);
var body = await resp.Content.ReadAsStringAsync();
return body;


👾 — Добавить ConfigureAwait(false) на все await
👍 — Создавать новый HttpClient на каждый запрос
🥰 — Гарантированно освобождать ответ/поток: using var resp = await client.SendAsync(req, HttpCompletionOption.ResponseHeadersRead, ct); await using var s = await resp.Content.ReadAsStreamAsync(ct); ... — чтобы соединение вернулось в пул
⚡️ — Просто поднять MaxConnectionsPerServer у SocketsHttpHandler

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰11
В чём разница между ключевыми словами readonly и const в C#?

Пример ответа: «Ключевое слово readonly в C# используется для полей экземпляров, которые могут быть присвоены только во время объявления или в конструкторе. После присвоения их значения невозможно поменять. Ключевое слово const используется для статических констант, которые можно только прочесть и нельзя изменить во время работы программы. Полям const нужно присваивать значение во время объявления».

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
📅 24 сентября в 19:00 МСК — бесплатный вебинар с Максимом Шаланкиным.

Тема: «ИИ-агенты: новая фаза развития искусственного интеллекта».

🔹 Почему все говорят про ИИ-агентов и куда вливаются миллиарды инвестиций.
🔹 Чем они отличаются от ChatGPT и обычных ботов.
🔹 Как работает цикл агента: восприятие → планирование → действие → обучение.
🔹 Живое демо простого агента.
🔹 Потенциал для бизнеса: автоматизация процессов и ROI до 80%.

Не придёшь — будешь потом рассказывать, что «агенты — это как чат-боты», и ловить косые взгляды от коллег 😏

👉 Регистрируйтесь через форму на лендинге
⚡️ Бесплатный вебинар — ИИ-агенты: новая фаза развития AI

24 сентября в 19:00 МСК состоится бесплатный вебинар с Максимом Шаланкиным — Data Science Team Lead в финтех-команде MWS, а познакомиться с ним ближе можно в его тг-канале.

Тема:
«ИИ-агенты: новая фаза развития искусственного интеллекта».


На вебинаре разберёмся, почему агенты — это следующий шаг после ChatGPT, чем они отличаются от обычных моделей и как уже приносят бизнесу ROI до 80%. А дальше я покажу, как эта тема ложится в наш курс по ИИ-агентам, который разработан под руководством Никиты Зелинского.

Подробности рассказываем в гс выше — включай, чтобы не пропустить.
В чем разница между Convert.ToString() и ToString()?

👾 — Convert.ToString() обрабатывает значения null, а ToString() — нет
👍 — ToString() выводит данные в соответствии с предоставленным форматом
🥰 — Convert.ToString() обрабатывает только значения null
⚡️ — ToString() обрабатывает значения null, а Convert.ToString() — нет

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
👾19
В 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#
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰14
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
🥰12
В сцене тысячи одинаковых движущихся объектов (NPC/пропсы). Рендер стал упираться в количество draw calls. Какой подход даст наибольший выигрыш без серьёзных правок контента?

👾 — Включить GPU Instancing на материале и рисовать пачками (Graphics.DrawMeshInstanced*/URP/HDRP instancing)
👍 — Включить Static Batching для всех объектов
🥰 — Полагаться на Dynamic Batching — он объединит большинство мешей автоматически
⚡️ — Увеличить shadow distance, чтобы тени реже считались

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
👾5🥰1
Нужно задавать разные таймауты на каждый HTTP-запрос при использовании IHttpClientFactory, не ломая длительные стриминговые ответы и не влияя на глобальный HttpClient.Timeout. Какой подход корректный?

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

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Сегодня премьера

В 19:00 МСК стартует бесплатный вебинар с Максимом Шаланкиным«ИИ-агенты: новая фаза развития искусственного интеллекта».

В программе:
— почему агенты ≠ чат-боты;
— живое демо простого агента;
— и как эта тема встроена в курс, который разработан под руководством Никиты Зелинского.

Это прямой эфир: подключиться можно через лендинг курса.
1