Библиотека собеса по C# | вопросы с собеседований
5.67K subscribers
208 photos
2 videos
1 file
180 links
Вопросы с собеседований по C# и ответы на них.

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

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

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

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
Public, private и protected — три ключевых слова, которые определяют уровень доступа к полям и методам в C# и Unity. Делимся секретами, как правильно использовать их, чтобы сделать ваш код безопаснее и понятнее.

👉 Статья
Количество уникальных букв в строке

1. Создаем строку str, которую нужно проанализировать.
2. Применяем метод Distinct() для получения уникальных символов в строке.
3. Вызываем метод Count() для получения количества элементов в последовательности уникальных символов.
4. Добавляем параметр char.IsLetter, чтобы учитывать только буквы алфавита.
Назовите все базовые типы данных, присутствующие в C#.

Существует четыре основных типа данных.

Char
Int
Float
Double
Перечислите наиболее часто используемые типы исключений.

Исключение — это ошибка, которая происходит во время выполнения. Используя подсистему обработки исключений C#, мы можем структурированным и контролируемым образом обрабатывать ошибки во время выполнения. Основное преимущество обработки исключений заключается в том, что она автоматизирует большую часть кода обработки ошибок. Обработка исключений также важна, поскольку C# определяет стандартные исключения для распространенных ошибок программы, таких как деление на ноль или выход индекса за пределы диапазона. Примеры исключений:
ArrayTypeMismatchException — это исключение возникает, когда тип сохраняемого значения несовместим с типом массива.
DivideByZeroException — когда пользователь пытается разделить целое число на ноль.
IndexOutOfRangeException — если индекс массива выходит за пределы допустимого диапазона.
Что такое Jagged массив в C#?

Зубчатый массив состоит из элементов, которые также являются массивами, но каждый из этих массивов-членов может иметь разный размер. Из-за этой композиции мы можем называть зубчатый массив «массивом массивов».
Можно ли использовать «this» в статическом методе C#?

Нет, потому что «this» возвращает ссылку на текущий экземпляр того же класса, а статические методы не принадлежат какому-либо конкретному экземпляру, потому что их можно вызывать только по имени класса.

Исключением являются методы расширения, поскольку мы можем использовать «this» с первым параметром метода.
Чему эквивалентен .NET CLR в Java?

Виртуальная машина Java (JVM).
Существует мнение, что высшего образования в сфере разработки игр в России нет, но это не так. В этой большой статье я подробно и честно расскажу о своем опыте обучения на разработчика игр в одном из московских университетов.

👉 Статья
Поиск в строке

С помощью метода IndexOf мы можем определить индекс первого вхождения отдельного символа или подстроки в строке.

Подобным образом действует метод LastIndexOf, только находит индекс последнего вхождения символа или подстроки в строку.
Определение типов, допускающих значение NULL, в C#.

Типы, допускающие значение NULL, позволяют вам назначать нормальный диапазон для значений NULL. Вы также можете назначать значения true или false для типов NULL. Синтаксис: < data_type> ? = null;
Как осуществляется инкапсуляция в C#?

Спецификаторы доступа помогают реализовать инкапсуляцию в C#. Область действия и видимость члена класса определяются этими спецификаторами доступа.
С помощью спецификаторов открытого доступа класс может предоставлять свои переменные-члены и функции другим объектам и функциям. Как только член становится открытым, к нему можно получить доступ извне класса.
С помощью спецификаторов закрытого доступа класс может скрывать свои переменные-члены и функции от других объектов и функций. Доступ к закрытым членам класса могут получить только функции того же класса. Даже экземпляры того же класса не имеют доступа к его закрытым членам.
Защищенные спецификаторы доступа похожи на спецификаторы закрытого доступа, поскольку к ним нельзя получить доступ извне класса. Однако к защищенным членам класса может получить доступ и любой подкласс этого класса. Это позволяет реализовать наследование.
Вторая часть рассказа про получение высшего образования в сфере разработки видеоигр. Еще больше подробностей о процессе обучения, разработке студенческих проектов, защите дипломных работ и ответе на главный вопрос: «А стоило ли оно того?»

👉 Статья
Подготовься к собеседованию на позицию Data Scientist!

Профессия Data Scientist становится все более востребованной, и компании ищут специалистов, способных превращать данные в ценные инсайты. Но как успешно пройти техническое собеседование?

Мы собрали 10 типичных задач, которые могут встретиться на собеседовании, и эффективные подходы к их решению:

1. Внешнее и тензорное произведение

2. One-hot кодировка

3. Мониторинг осадков

4. Симуляция бросков кубиков в «Монополии»

5. Бурение скважин для добычи золота

6. Вычисление свертки

7. Бэктестинг торговой стратегии

8. Прогноз оттока клиентов с помощью логистической регрессии

9. Обнаружение спама с использованием дерева решений

10. Предсказание цен на квартиры с помощью линейной регрессии

Чтобы начать решать задачи, достаточно ответить на четыре простых вопроса по этой ссылке и получить доступ к вводным занятиям курса Математика для Data Science и 10 задачам.
Почему для методов внутри интерфейса нельзя указать модификатор доступа?

Виртуальные методы в интерфейсе не имеют определения метода. Методы здесь написаны для переопределения в производном классе и, следовательно, они общедоступны.
Delta Time — незаменимый инструмент в разработке игр на Unity. Он позволяет сделать игру независимой от частоты кадров, но его неправильное использование может сломать весь геймплей. Разберем, когда и как его применять.

👉 Статья
⚡️Самые полезные каналы по C# в одной папке

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

Добавляйте 👉 тык сюда
Please open Telegram to view this post
VIEW IN TELEGRAM
Можно ли изменить значение переменной во время отладки приложения?

Да, значения переменных можно изменять во время отладки.
Что такое частные и общие сборки?

Частные сборки:
✍🏻 Видны только самому приложению
✍🏻 Нет необходимости заботиться об уникальном имени во всем глобальном пространстве имен
✍🏻 Не нужно делать записей в реестре при развертывании приложения
✍🏻 Сборки просто копируются в директорию приложения или в подчинённую директорию
✍🏻 Общая среда выполнения (CLR) при запуске приложения прочитает его манифест и определит какие сборки необходимы. Затем будет произведен поиск нужной сборки по директории приложения (процесс зондирования)

Общие сборки:
✍🏻 Могут быть использованы сразу несколькими приложениями
✍🏻 Сборка должна иметь строгое имя (strong name)
✍🏻 Сборка должна быть помещена в общедоступное место — Global Assembly Cache (GAC, глобальный кэш сборок)
🎨 Новый канал для вдохновения — UX in GIF

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

📌 Чем полезен канал?

→ Идеи для дизайна интерфейсов.
→ Анимации, которые можно повторить или адаптировать.
→ Лёгкий способ искать вдохновение перед новым проектом.

👉 Подписывайтесь и вдохновляйтесь: UX in GIF
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему в C# используются Async и Await?

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

Для этого мы используем ключевое слово Async для создания асинхронного метода и Await для его запуска без блокировки нашей программы.
Опишите, что такое структура.

Структура — это тип данных значимого типа в C#, который наследуется от System.Value. Она предназначена для хранения структурированных данных и обычно используется для небольших объемов информации. Структуры могут иметь параметризованные конструкторы и объявляются с помощью ключевого слова struct.

Для создания структуры можно использовать ключевое слово new, что потребует передачи параметров (если они указаны в конструкторе). В противном случае структуру можно создать без использования new, что приведет к тому, что все члены структуры останутся неназначенными.