Библиотека задач по C# | тесты, код, задания
5.33K subscribers
356 photos
1 video
172 links
Задачи и тесты по C# для тренировки и обучения.

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

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

Работать у нас: https://job.proglib.io/

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
Каковы лучшие практики для написания чистого и поддерживаемого кода на C#?

Как ответить: Упомяните следующие практики: использование последовательных соглашений об именах, использование комментариев и документации, написание модульного и повторно используемого кода, оптимизация производительности, следование принципам SOLID.
Пример ответа: «Для написания чистого и поддерживаемого кода на C# важно использовать определенные практики. В них включаются использование последовательных соглашений об именах для переменных, классов и методов, написание конструктивных комментариев и документации, разбиение кода на модульные и повторно используемые части, оптимизация производительности с помощью уменьшения числа ненужных операций и следование принципам SOLID (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion)».
На что обращают внимание: на кандидатов, которые могут рассказать о части лучших практик для написания чистого кода, включая основные элементы, такие как соглашения об именах, модульность, оптимизация производительности и следование принципам SOLID.
Как открыть аудиофайл?

Для открытия аудио файла в C# можно воспользоваться классом SoundPlayer из пространства имен System.Media.

В данном примере мы используем класс SoundPlayer для открытия и воспроизведения аудио файла. Путь к аудио файлу указывается в переменной audioFilePath. Затем мы загружаем аудио файл с помощью свойства SoundLocation, а затем воспроизводим его с помощью метода Play(). Если происходит ошибка при открытии аудио файла, выводим сообщение об ошибке.
Чем отличаются друг от друга классы String и StringBuilder?

Объект класса String представляет собой неизменяемую строку.
Когда выполняется какой-нибудь метод класса String, система создает новый объект в памяти с выделением ему достаточного места.

Объект класса StringBuilder представляет собой динамическую строку.
При создании строки StringBuilder выделяет памяти больше, чем необходимо этой строке, а при добавлении к ней каких-либо элементов строка не пересоздается заново.
В том случае если выделенной памяти не будет хватать для добавления новых элементов, то емкость объекта будет увеличена.
Объясните, что такое фиксированный временной шаг в Unity3D? Почему настройка фиксированного времени влияет на скорость игры?

Функция Fixed Timestep помогает установить обновления системы через фиксированный интервал времени. Механизм, подобный очереди, будет управлять всеми событиями в реальном времени, которые накапливаются между временными эпохами.

Если частота кадров упадет ниже некоторого порогового значения, установленного для фиксированного временного шага, это может повлиять на скорость игры.
Сокращенная запись методов

Если метод в качестве тела определяет только одну инструкцию, то мы можем сократить определение метода. Например, допустим у нас есть метод(см «было» на картинке).

Мы можем его сократить следующим образом(смотреть «стало» на картинке).

То есть после списка параметров ставится оператор =>, после которого идет выполняемая инструкция.
Форматирование дат и времени

Не всегда удобно использование встроенных форматов даты и времени. Иногда бывает необходимо задать собственную форму отображения объекта DateTime.
Что выведет код сверху?
Anonymous Quiz
0%
0
3%
1
65%
2
32%
Error
Метод Subtract

Метод используется для вычитания дат.

Синтаксис:
Subtract(DateTime date).
Какова алгоритмическая сложность для операций чтения и записи для коллекции Dictionary?

Чтение очень быстрое, потому что используются хэш-таблицы и сложность в этом случае стремится к O(1).

Запись проходит тоже очень быстро (O(1)), в том случае если .Count меньше емкости, если же больше, то скорость стремится к O(n).
Возврат значения из try-finally

Можно смело делать воврат из try-finally блока. При этом, компилятор закэширует возвращаемое значение, и оно будет возвращено только после исполнения finally-блока.
Объединение строки в C#

StringBuilder.Append можно использовать для эффективного добавления нескольких строк. Это предпочтительное решение по сравнению с + оператор для объединения более трех строк.
Узнаем размер переданного файла

Программа запрашивает у пользователя путь к файлу, а затем пытается получить информацию о файле, используя класс FileInfo. Если файл существует, то выводится его размер в байтах, килобайтах и мегабайтах. Если файл не найден или возникла ошибка при получении информации о файле, выводится соответствующее сообщение.
Узнаем сколько букв содержится в тексте файла

В этом коде мы считываем текст из файла, затем применяем регулярное выражение для удаления всех символов, кроме букв (как на кириллице, так и на латинице), и подсчитываем количество букв в полученной строке.
Генерируем случайные числа

Для генерации случайных чисел мы сначала создаем объект типа «Random», потом вызываем его метод «Next», в результате чего и получаем случайное число. Если мы вызовем метод «Next» несколько раз, то получим разные числа.
Смена регистра

Для приведения строки к верхнему и нижнему регистру используются соответственно функции ToUpper() и ToLower().
⚡️Самые полезные каналы по C# в одной папке

В ней:
канал для подготовки к собеседованиям
основной канал
книги по C#
лучшие вакансии из сферы
и наш чат, в котором можно общаться и задавать вопросы

Добавляйте 👉 тык сюда
Please open Telegram to view this post
VIEW IN TELEGRAM
Dispose(), Finalize() — что это за методы, как используются в .NET?

Используются для освобождения ресурсов. Применяя метод Dispose, вы должны обеспечить неявную очистку методом Finalize. Если программисту не удалось вызвать метод Dispose, использование метода Finalize предотвращает постоянную утечку ресурсов.
Вставка

Для вставки одной строки в другую применяется функция Insert.

Первым параметром в функции Insert является индекс, по которому надо вставлять подстроку, а второй параметр — собственно подстрока.
В каком из приведенных вариантов правильно описано объявление типа перечисления?
Anonymous Quiz
4%
{ Sat, Sun, Mon, Tue, Wed, Thu, Fri } as Enum
11%
enum { Sat, Sun, Mon, Tue, Wed, Thu, Fri }
78%
enum Day {Sat, Sun, Mon, Tue, Wed, Thu, Fri}
6%
list Day { Sat, Sun, Mon, Tue, Wed, Thu, Fri }