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

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

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

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

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
🧠 Прокачай мозг, а не только код

Вместо бесконечных туториалов на YouTube предлагаем разобрать, что делает код читаемым, а архитектуру — устойчивой.

🧩 Курсы, полезные для любого ЯП:

— Алгоритмы и структуры данных
— Архитектуры и шаблоны проектирования
— Математика и основы IT

🐍 И ещё курс по Python

🔥 До конца октября скидка 40%!

🔗 Перейти к курсам
Что выведет код?

👾 — 10
👍 — 55
🥰 — Compile-time error
⚡️ — Runtime error

Библиотека задач по C#
👍32🥰15
Можно ли объявить собственный конструктор без параметров у struct?

👾 — Да, начиная с C# 10
⚡️ — Нет

Библиотека задач по C#
👾29
Время прокачать алгоритмы с 40-процентной скидкой до конца октября

На собеседовании не просят бездумно написать шаблонное решение. Важно понимать, как работают алгоритмы под капотом.

🔹 В курсе ты научишься:

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

🤔 Решаешь задачи только в тг каналах? Пройди курс и отправляйся на реальные собеседования!

🔗 Подробнее о курсе
Что выведет Console.WriteLine(Math.PI);?

👾 — 3.14
👍 — 3.14159
🥰 — Error

Библиотека задач по C#
👍45👾1
Что такое упаковка и распаковка?

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

Библиотека задач по C#
👍3
Что верно про ValueTask?

👾 — Всегда быстрее Task
👍 — Можно безопасно ожидать многократно
🥰 — Ожидать можно один раз; для повторных — AsTask()
⚡️ — Экземпляры стоит кэшировать и переиспользовать

Библиотека задач по C#
🥰21👍3
В ASP.NET Core что даёт ConfigureAwait(false)?

👾 — Нужен всегда, иначе дедлок
👍 — Обычно избыточен (нет SynchronizationContext), но harmless и может чуть снизить накладные расходы
🥰 — Запрещает выполнение на thread pool
⚡️ — Переключает на UI-поток

Библиотека задач по C#
👍28
Как ключевое слово volatile работает в C#? Когда и как его следует использовать?

Ключевое слово volatile используется для того, чтобы значение переменной всегда считывалось и записывалось в основную память, а не из кэша. Используйте его, если у вас есть переменная, совместно используемая несколькими потоками, и вы хотите избежать потенциальных проблем с видимостью или устаревших значений.

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Задача с собесеседования

Недавно в одном известном всем банке кандидату была предложена задача:

Есть клиент, который за месяц делает 1000 транзакций.
Нужно посчитать вероятность того, что среди них окажется хотя бы одна дублирующаяся сумма, если каждая сумма округляется до 2 знаков после запятой.


Вероятности, распределения, матожидание, градиенты — всё это может всплыть на интервью, и даже в продовых задачах.

🎓 Proglib запускает экспресс-курс «Математика для Data Science» — для тех, кто хочет закрыть эти пробелы и понять математику быстро, качественно и без боли.

🔍 На курсе вас ждет:

— линейная алгебра, анализ, теория вероятности и статистика;
— градиенты, матрицы и экстремумы функций;
— математики и алгоритмы машинного обучения;
— много практики.

📅 Старт: 6 ноября
Формат: 10 вебинаров и 3 практических проекта
💬 Поддержка: менторы + Telegram-чат
💰 Стоимость: 37 000 ₽ (есть рассрочка)

🔗 Узнать больше и записаться
Боксинг в .Net позволяет пользователю конвертировать

👾 — тип integer в double
👍 — тип reference в тип value
🥰 — тип value в тип reference
⚡️ — тип double в integer

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰43😢2🤩1
😵‍💫 Устал от бесконечной подготовки к собесам?

Тогда залетай к нам, есть задачка попроще.

Пройди в нашем боте мини-тест по математике и узнай, готов ли ты к Data Science или стоит что-то подтянуть.

📱 Перейти в бота
Где возможна скрытая аллокация (boxing) при foreach?

👾 — По List<int>
👍 — По IEnumerable<int> поверх List<int>
🥰 — По массиву int[]
⚡️ — В обычном for

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18👾1
🔥 Новый курс «Математика для Data Science»

Записывайтесь до 19.10 и получите бонус-курс «Школьная математика» для быстрого освежения знаний! 🚀

🧠 Эксперты-спикеры на курсе:

▫️ Диана Миронидис — преподаватель ВШЭ, автор Яндекс Практикума;

▫️ Ксения Кондаурова — преподаватель Центрального Университета (Т-Банк);

▫️ Маргарита Бурова — академический руководитель программ Wildberries & Russ.

👉🏻 Не упустите шанс улучшить свои навыки
Необходимо ли использование оператора return в каждой функции в C#?

👾 — Да
⚡️ — Нет

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
48👾2
💥 Математика, которая не «для галочки»

Разработали курс «Математика для Data Science» специально для вас — чтобы закрыть все пробелы в математике и уверенно пройти любое собеседование на позицию Data Scientist.

🧠 За 2 месяца ты разберёшь:

➡️ линейную алгебру — работа с векторами и матрицами, их разложения, собственные значения и обратные матрицы;

➡️ мат. анализ — пределы, производные, экстремумы, применение градиентного спуска;

➡️ теорию вероятностей и статистику — случайные величины, распределения, статистические гипотезы, A/B-тесты;

➡️ математику в ML и аналитике — как использовать всё это в алгоритмах, логистической регрессии, методах ближайших соседей, байесовских подходах.

📚 Формат: 10 вебинаров, 3 практических проекта, тесты и чат с менторами.

🔥 При оплате до 19 октября получите курс по базовой математике в подарок.

🔗 Записаться на курс
Различия между интерфейсом и абстрактным классом в .NET

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

Абстрактный класс предоставляет частичную реализацию функциональности и некоторые абстрактные/виртуальные члены, которые должны быть реализованы сущностями, которые наследуют класс. Он также объявляет поля.

Интерфейс и абстрактный класс не могут быть инстанцированы.


🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚1
В .NET Core приложении вы заметили частые паузы из-за работы GC. Профилирование показывает большое количество короткоживущих объектов, создаваемых внутри горячих методов. Какой подход наиболее правильный для оптимизации?

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

Библиотека задач по C#
👍22🥰1
Как в C# реализуется паттерн «Lazy Initialization» и какие меры предосторожности необходимо предпринять для его корректного использования в многопоточных приложениях?

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

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

👾 — Мусорное значение
👍 — 0
🥰 — Compile-time error
⚡️ — Runtime error

Библиотека задач по C#
👍48🥰16👾211