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

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

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

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

Наши каналы: https://t.iss.one/proglibrary/9197
Download Telegram
Что делает оператор ! (null-forgiving)?

👾 — Добавляет runtime-проверку и бросает NullReferenceException при null
👍 — Лишь подавляет предупреждение анализатора nullable; на рантайм не влияет
🥰 — Навсегда делает тип non-nullable
— Автоматически кидает ArgumentNullException

🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

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

👾
— Hello, world!
👍 — DelegateMethod
🥰 — Error
⚡️ — Ничего из вышеперечисленного

🤌 Бонусы для подписчиков:
Скидка 40% на все курсы Академии
Розыгрыш Apple MacBook
Бесплатный тест на знание математики

Библиотека задач по C#
👾19
В большом Unity-проекте вы замечаете регулярные просадки FPS при загрузке сцен и подгрузке ассетов во время игры. Какой из подходов будет наиболее правильным для минимизации этих проблем?

👾 — Использовать Resources.Load для загрузки всех объектов при старте игры, чтобы во время выполнения не было подгрузок
👍 — Перенести все ассеты в Addressables и использовать асинхронную загрузку (Addressables.LoadAssetAsync), чтобы управлять памятью и подгрузкой по мере необходимости.
🥰 —Увеличить количество потоков в настройках Unity Player, чтобы сцена загружалась быстрее
⚡️ — Отключить VSync, чтобы повысить FPS и скрыть фризы от пользователя

🤌 Бонусы для подписчиков:
Скидка 40% на все курсы Академии
Розыгрыш Apple MacBook
Бесплатный тест на знание математики

Библиотека задач по C#
👍7
Как корректно сравнивать идентификаторы/ключи без влияния культуры?

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

🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

Библиотека задач по C#
👍12🥰2
Как корректно передать CancellationToken в await foreach у IAsyncEnumerable<T>?

👾 — await foreach (var x in source(ct))
— await foreach (var x in source.WithCancellation(ct))
👍 — Достаточно using var cts = new(); рядом
🥰 — await foreach (var x in source.ConfigureAwait(false, ct))

🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

Библиотека задач по C#
6
🔬 Вы когда-нибудь смотрели на код и думали: «Работает, но почему?»

А теперь представьте, что вы:

→ понимаете, почему модель учится слишком медленно или слишком быстро;
→ видите, какие данные реально влияют на предсказание, а какие — шум;
→ знаете, что происходит внутри нейронки.

4 декабря стартует курс «Математика для разработки AI-моделей».

Линал, оптимизация, матан, статистика — всё, что происходит внутри модели между input и output. Практика на Python. Живые разборы с экспертами из SberAI, ВШЭ, Wildberries&Russ.

3 задания + финальный проект. Без теории ради теории — только то, что реально используется в моделях.

🎁 Бонус: курс по школьной математике + тест уровня математики

👉 Записаться
В .NET вы видите, что приложение часто вызывает сборку мусора, из-за чего падает производительность. Какой из подходов наиболее правильный для снижения давления на GC?

👾 — Хранить все объекты в глобальных переменных, чтобы их не собирал GC
👍 — Использовать пулы объектов (ArrayPool<T>, ObjectPool<T>) и Span<T>, чтобы сократить количество аллокаций
🥰 — Вручную вызывать GC.Collect() после каждой тяжёлой операции
⚡️ — Перейти на dynamic для универсальности и уменьшения числа классов

Библиотека задач по C#
👍23😁2
В .NET приложении необходимо обрабатывать миллионы строк текста с минимальными расходами памяти и максимальной скоростью. Какой подход будет наиболее правильным?

👾 — Использовать string конкатенацию (+) в цикле
👍 — Применить StringBuilder для конкатенации строк
🥰 — Сохранять строки в List<string> и объединять их через string.Join
⚡️ — Использовать Span<char> или Memory<char> для работы с подстроками без создания новых объектов

Библиотека задач по C#
👍29😢21
C#-разработчик, хочешь в AI? 🤖

Переход из энтерпрайза в Data Science невозможен без математической базы. Просто выучить синтаксис Python мало, нужно понимать, что происходит «под капотом».

Мы обновили курс «Математика для разработки AI-моделей» и добавили живые вебинары.

Программа ближайших дней:

🔹 Лекция 2: Векторы, матрицы, операции в NumPy .
🔹 Лекция 3: Линейная регрессия и метод наименьших квадратов.
🔹 Лекция 4: Матричные разложения (SVD) и создание рекомендательных систем.

Вы научитесь не просто кодить формулы, а понимать линейную взаимосвязь векторов и снижать размерность данных.

Первый вебинар уже прошел (отзывы огонь 🔥), но записи доступны.

Присоединяйся до 9 декабря:
https://clc.to/LojFzw
Что бросит await Task.WhenAll(tasks) при ошибках?

👾 — Всегда AggregateException, даже при одной ошибке
— При одной ошибке — саму эту ошибку; при нескольких — AggregateException (все доступны в t.Exception.InnerExceptions)
👍 — Никогда не бросает, просто возвращает результаты успешных задач
🥰 — Отменяет остальные задачи при первом падении

🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

Библиотека задач по C#
👾19👍1
Можно ли запретить наследование от своего собственного класса?

Для того, чтобы запретить наследоваться от класса необходимо объявить его с модификатором sealed.
👍9🥱2
Является ли C# типобезопасным языком программирования?

👾 — Да
⚡️ — Нет

Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
👾692
В .NET Core сервисе вы работаете с большим количеством строковых данных. Профилирование показывает избыточные аллокации при извлечении подстрок. Какой подход наиболее эффективен для оптимизации?

👾 — Использовать string.Substring() как обычно — это самый быстрый вариант
👍 — Применить StringBuilder для хранения всех подстрок
🥰 — Использовать Span<char> или ReadOnlyMemory<char>, чтобы работать с подстроками без копирования
⚡️ — Сохранять все строки в static List<string>, чтобы их не собирал GC

🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

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

👾 — class Derived : Base
👍 — class Derived inherits Base
🥰 — class Derived extends Base
⚡️ — Ничего из вышеперечисленного

🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

Библиотека задач по C#
👾323🥱2
Что выведет код?

👾 — Wed
👍 — 3
🥰 — 2
⚡️ — 4

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

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

🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

Библиотека задач по C#
👍49❤‍🔥1🌚1
В .NET приложении необходимо обрабатывать миллионы строк текста с минимальными расходами памяти и максимальной скоростью. Какой подход будет наиболее правильным?

👾 — Использовать string конкатенацию (+) в цикле
👍 — Применить StringBuilder для конкатенации строк
🥰 — Сохранять строки в List<string> и объединять их через string.Join
⚡️ — Использовать Span<char> или Memory<char> для работы с подстроками без создания новых объектов

Библиотека задач по C#
👍287🔥1
Решать задачи — хорошо. Понимать суть — бесценно

Можно бесконечно гонять задачи на LeetCode, но без фундаментального понимания алгоритмов и паттернов ты просто запоминаешь решения, а не учишься мыслить инженерно.

Акция 1 + 2:

Забирай три курса по цене одного. Оплачиваешь самый дорогой слот, два других получаешь бесплатно.

Идеальный стек для практики:

— Алгоритмы и структуры данных (база);
— Архитектуры и шаблоны проектирования.

Прокачать скиллы

До 31 декабря.
Помощь с выбором: @manager_proglib
У вас есть сервис на .NET, обрабатывающий большое количество параллельных запросов к базе данных. При нагрузочном тестировании вы замечаете, что количество потоков резко растёт, а производительность падает. Какой подход будет наиболее правильным для оптимизации?

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

Библиотека задач по C#
👍171
В .NET у вас есть метод, который вызывается в высоконагруженном сервисе миллионы раз в секунду. В профилировании видно, что он активно генерирует мусор, перегружая GC. Какой из подходов будет наиболее правильным для оптимизации?

👾 — Переписать метод на небезопасный код (unsafe) и работать напрямую с указателями
👍 — Использовать Span<T> и пулы объектов (ArrayPool<T>, ObjectPool<T>) для снижения количества аллокаций
🥰 — Увеличить размер heap в настройках CLR, чтобы GC срабатывал реже
⚡️ — Запустить несколько экземпляров метода параллельно, чтобы распределить нагрузку на разные потоки

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