Библиотека задач по 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
加入频道
Формат процентов

Описатель "P" задает отображение процентов. Используемый с ним числовой спецификатор указывает, сколько знаков будет после запятой.
Узнаем память компьютера c помощью C#

В C# можно узнать количество доступной памяти компьютера, используя класс System.Diagnostics.PerformanceCounter.

Этот пример кода использует счетчик производительности «Available MBytes», который содержит значение доступной физической памяти в мегабайтах. Таким образом, значение availableMemory будет содержать количество доступной памяти в мегабайтах.
Что выведет на экран метод Test?

Ответ:
Выведет 2. При помещении делегатов в цепочку у делегата chain заполняется внутреннее поле, которое представляет из себя массив делегатов (в случае, если количество больше одного, иначе просто хранится ссылка на метод). Все делегаты выполняются последовательно. Возвращается значение последнего, остальные не учитываются.
Изменение размера массива

Для изменения размера массива применяется метод Resize. Его первый параметр — изменяемый массив, а второй параметр — количество элементов, которые должны быть в массиве.

Если второй параметр меньше длины массива, то массив усекается. Если значение параметра, наоборот, больше, то массив дополняется дополнительными элементами, которые имеют значение по умолчанию. Причем первый параметр передается по ссылке.
Синхронный запуск задачи

По умолчанию задачи запускаются асинхронно. Однако с помощью метода RunSynchronously() можно запускать синхронно.
Локальные функции

Один из интересных трюков в C# связан с использованием локальных функций для создания чистых и компактных методов. Локальные функции позволяют определять методы внутри других методов, что улучшает читаемость и организацию кода, особенно когда некоторые действия нужно повторять внутри одного метода.

В этом примере метод Add определен внутри SomeMethod. Это не только помогает сгруппировать связанный функционал, но и ограничивает область видимости Add, делая код более безопасным и управляемым.
Изменение порядка элементов массива

Например, изменим порядок элементов с помощью следующего кода.
Операторы | и & против || и &&

Обе пары операторов могут быть применены к переменным типа bool. Единственная разница — одиночные операторы не сокращают количество вычислений если результат очевиден.
Получение суммы

Для получения суммы значений применяется метод Sum.

Метод Sum() имеет ряд перегрузок. В частности, если у нас набор сложных объектов, как в примере выше, то мы можем указать свойство, значения которого будут суммироваться.

В данном случае вычисляется сумма значений свойств Age объектов Person из массива people.
System.Split()

System.Split() — разделяет заданную строку на подстроки, в качестве разделителя используется указанный через параметр символ (или группа символов).

System.Empty — возвращает пустую строку.
Может ли DateTime равняться null? Почему?

Нет, т.к. DateTime это тип значение, наследован из System.ValueType.
Что такое Entity Framework в C#?

Как ответить: Опишите Entity Framework как Object-Relational Mapping (ORM) фреймворк, упрощающий доступ и манипуляцию базами данных. Объясните, что он даёт разработчикам возможность работать с базами данных, используя принципы ООП, и предоставляет такие функции, как автоматический маппинг, поддержка LINQ и отслеживание изменений.
Пример ответа: «Entity Framework — это ORM-фреймворк, созданный Microsoft. Он позволяет разработчикам работать с базами данных с помощью принципов ООП вместо написания необработанных SQL запросов. Entity Framework автоматически сопоставляет таблицы базы данных с классами и даёт такие функции, как поддержка LINQ, отслеживание изменений и CRUD операции. Он упрощает доступ и изменение баз данных в приложениях C#».
На что обращают внимание: на кандидатов, которые могут дать точное и полное объяснение Entity Framework, включая его назначение, главные особенности и преимущества доступа и управления базами данных.
Каковы лучшие практики для написания чистого и поддерживаемого кода на 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 помогает установить обновления системы через фиксированный интервал времени. Механизм, подобный очереди, будет управлять всеми событиями в реальном времени, которые накапливаются между временными эпохами.

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

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

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

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