tgindex
C# / .NET задачи и вопросы

C# / .NET задачи и вопросы

Статистика

🎲 Задачи и вопросы с собеседований по .Net/C# разного уровня сложности. Прислать задачу/вопрос в дар: @cyberJohnny Сотрудничество: @cyberJohnny Обсуждаем тут: @netquizcom

Последний пост
4 авг.
Последнее чтение
18:41
Постов за неделю
0
Всего постов
20
Тип
открытый
Язык
русский
Категория
Технологии (по похожим)
В каталоге с
12 авг.
Подписчики
1 491
−2 за 4 дн.
Сутки
−1
−0,07%
Неделя
 
Месяц
 
Просмотров на пост
328
20 постов
Вовлечённость
22,0%
к подписчикам
Постов в день
0,0
всего 20
Упоминаний
0
каналов
Охват размещения
оценка
1/24сутки в ленте
251
1/48двое суток
287
1/72трое суток
310

Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.

Посты

  • Какое ключевое слово C# используется для изменения данных и поведения базового класса путем замены члена базового класса новым производным членом? 👾 — overrides 👍 — protected 🥰 — base ⚡️ — new 🐸Библиотека задач по C#

  • Покупать новый курс каждый раз, когда меняется рабочая задача, — довольно странная механика. Нашли альтернативу 👇

  • Разработчику нужен стабильный результат, DevOps — контроль инфраструктуры, техлиду — правила для всей команды. Собрали это в одном посте 👇

  • Как написать получение диапазона и копирование в массив? Ответ на картинке.

  • Самый страшный файл в проекте — тот, который «работает, не трогай» 👇

  • Как сделать «асинхронный lock» вокруг критической секции? 👾 — lock работает через await 👍 — await semaphore.WaitAsync() с SemaphoreSlim(1, 1) и try/finally Release() 🥰 — Monitor.Enter/Exit поддерживает await ⚡️ — Interlocked гарантирует эксклюзивный доступ ко всей секции Библиотека задач по C#

  • Чем BackgroundService отличается от IHostedService? 👾 — Предназначен только для таймеров 👍 — Это базовый класс с циклом ExecuteAsync; IHostedService — лишь интерфейс Start/Stop без цикла 🥰 — Запускается только в Debug ⚡️ — Не поддерживает отмену CancellationToken Библиотека задач по C#

  • Что гарантирует readonly struct? 👾 — Что структура хранится только на стеке 👍 — Все поля readonly; методы не могут изменять this, компилятор предотвращает записи и избегает лишних defensive copies для in 🥰 — Автоматическую реализацию IEquatable ⚡️ — Что экземпляры нельзя боксить Библиотека задач по C#

  • Что даёт record struct по сравнению с обычным struct? 👾 — Делает тип ссылочным 👍 — Генерирует структурное равенство, with-копирование и Deconstruct, оставаясь значимым типом 🥰 — Запрещает изменяемые поля ⚡️ — Автоматически реализует IDisposable Библиотека задач по C#

  • Можно ли объявить protected член в интерфейсе? 👾 — Да 🥰 — Нет ⚡️ — Иногда Библиотека задач по C#

  • Что произойдет, если попытаться присвоить значение переменной readonly вне конструктора? 👾 — Ошибка компиляции 👍 — Ошибка выполнения 🥰 — Переменная будет изменена ⚡️ — Переменная станет null Библиотека задач по C#

  • Как логировать в Microsoft.Extensions.Logging с минимумом аллокаций на горячем пути? 👾 — Интерполяция строк: $"User {id} logged in" 👍 — LoggerMessage.Define/DefineScope с кэшированными делегатами (структурированное логирование) 🥰 — Console.WriteLine — самый лёгкий вариант ⚡️ — Создавать новый EventSource на каждое сообщение Библиотека задач по C#

  • Что делает await Task.Yield()? 👾 — Переносит работу на отдельный поток пула 👍 — Отдаёт управление планировщику и асинхронно продолжит после yield (в текущем контексте, если он есть); не offload’ит работу 🥰 — Усыпляет поток на один квант ⚡️ — Гарантирует переключение на UI-поток Библиотека задач по C#

  • Что верно про BackgroundService в .NET? 👾 — Это таймер, который сам перезапускает приложение при сбое 👍 — Базовый класс для IHostedService: реализуете долгоживущую работу в ExecuteAsync(CancellationToken), отмена через stoppingToken 🥰 — Запускается только по расписанию Cron ⚡️ — Обязателен в ASP.NET Core для всех контроллеров Библиотека задач по C#

  • Что такое делегаты в C#? Это эквивалент указателя функции C в C#, основное отличие которого состоит в том, что делегаты C# являются типобезопасными. Это ссылочный тип, который можно использовать для обработки других функций, таких как данные. Мы можем передавать функции в качестве параметров и обрабатывать любые связанные функции обратного вызова и эвенты. 🐸Библиотека задач по C#

  • Объясните, что такое файлы cookie в ASP.NET (ASP.NET)? Файл cookie можно определить как небольшие фрагменты информации, которые могут быть отправлены в браузер серверной программой и сохранены интернет-браузером. Интернет-браузер затем будет передавать файлы cookie обратно на сервер каждый раз, когда он делает запрос с этого сервера. Это особенно полезно для разрешения проверки/аутентификации. Предположим, когда пользователь входит в систему с ограниченным паролем, файл cookie сохраняет информацию о пользователе (имя пользователя, пароль). Таким образом, клиенту не нужно повторно вводить свои данные для каждой новой страницы, которую он хочет загрузить. Свойство cookie получает коллекцию переменных cookie клиента. 🐸Библиотека задач по C#

  • Приведенный ниже словарь будет отображаться в инспекторе Unity: public Dictionary dictionary; 👾 — True 👍 — False 🥰 — Может быть ⚡️ — Может быть нет 🐸Библиотека задач по C#

  • Что выводит Console.WriteLine("Hello".ToUpper());? 👾 — HELLO 👍 — hello 🥰 — Error ⚡️ — Ничего из вышеперечисленного Библиотека задач по C#

  • В ASP.NET (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#

  • В C# приложении используется async/await, но метод внутри вызывает долгую синхронную операцию и из-за этого приложение начинает “подвисать” под нагрузкой. В чем проблема и что правильнее сделать? 👾 — async/await всегда создает отдельный поток, поэтому подвисаний быть не должно 👍 — async/await не делает синхронный код неблокирующим, нужно использовать настоящие async API или выносить CPU-bound работу отдельно 🥰 — Нужно заменить все await на .Result, чтобы код выполнялся последовательно ⚡️ — Нужно увеличить timeout, потому что проблема только в слишком коротком ожидании 🐸Библиотека задач по C#