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

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

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

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

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
Шпаргалка для Unity

Держите шпаргалку по видам ForceMode в Unity. Чаще всего используется в методе AddForce.

Здесь v — velocity, f — сила толчка, m — масса объекта, а dt — delta time.
System.Split()

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

System.Empty — возвращает пустую строку.
Что такое модульное тестирование и как его провести в C#?

Пример ответа: «Модульное тестирование — это техника тестирования, где изолированно тестируются отдельные модули или компоненты кода для обеспечения корректного функционирования. В C# модульное тестирование проводится с помощью таких фреймворков, как NUnit или MSTest. Пишутся тестовые методы, выполняющие нужные части кода и подтверждающие, что получено ожидаемое поведение. Модульное тестирование помогает раньше идентифицировать баги, улучшает качество кода и содействует сопровождаемости».
Можно ли переопределить частный виртуальный метод?

Нет, потому что они недоступны вне класса.
В чём разница между ключевыми словами readonly и const в C#?

Пример ответа: «Ключевое слово readonly в C# используется для полей экземпляров, которые могут быть присвоены только во время объявления или в конструкторе. После присвоения их значения невозможно поменять. Ключевое слово const используется для статических констант, которые можно только прочесть и нельзя изменить во время работы программы. Полям const нужно присваивать значение во время объявления».
Каким образом можно создать анимацию перехода между сценами в Unity?

Можно использовать метод SceneManager.LoadScene() для загрузки новой сцены и перехода к ней.
Как написать получение диапазона и копирование в массив?

Ответ на картинке.
Интерполированные строки $»{x}»

Возможности C# позволяют вам интерполировать (разбивать) строки простым и элегантным путем.

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

Это класс, объект которого не может быть создан. Такой класс должен иметь класс-наследник с реализацией абстрактных методов. Абстрактный класс — это фактически чертёж нормального класса без реализации.
Сравнение строк

Для сравнения строк применяется статический метод Compare.

Данная версия метода Compare принимает две строки и возвращает число. Если первая строка по алфавиту стоит выше второй, то возвращается число меньше нуля. В противном случае возвращается число больше нуля. И третий случай — если строки равны, то возвращается число 0.

В данном случае так как символ h по алфавиту стоит выше символа w, то и первая строка будет стоять выше.
Какой оператор используется для остановки цикла?
Anonymous Quiz
1%
stop
3%
return
95%
break
1%
exit
В чем суть полиморфизма?

Полиморфизм — способность функции обрабатывать данные разных типов.

Ad-hoc полифорфизм (перегрузка функций, приведение типа) — можно создать несколько методов с одним именем и разными аргументами, примитивные типы могут неявно приводиться.
Параметрический полиморфизм (обобщённое программирование) — можно создать полиморфные (обобщённые) типы.
Полиморфизм включения (наследование) — интерфейсы, наследование классов, виртуальные функции.
Назовите важные IDE для разработки на C#.

Следующие IDE полезны при разработке на C#:
✍🏻 MonoDevelop
✍🏻 Visual Studio Code (VS Code)
✍🏻 Browxy
✍🏻 Visual Studio Express (VSE)
✍🏻 Visual Web Developer (VWD)
Что такое цепочка конструкторов в C#?

Цепочка конструкторов — это способ соединить два или более классов в отношениях в виде наследования. В цепочке конструкторов каждый конструктор дочернего класса неявно сопоставляется с конструктором родительского класса с помощью ключевого слова base, поэтому, когда вы создаете экземпляр дочернего класса, он вызывает конструктор родительского класса. Без этого наследование невозможно.
Что такое MVVM?

Шаблон MVVM (Model-View-ViewModel) позволяет разделить бизнес-логику от представления, применяется в технологии WPF. Основные элементы:

Модель (Model) описывает используемые в приложении данные. Модели могут содержать логику, непосредственно связанную этими данными, например, логику валидации свойств модели.
Представление (View) — определяет визуальный интерфейс (кнопки, текстовые поля и прочие визуальные элементы), через который пользователь взаимодействует с приложением.
Модель Представления (ViewModel) — связывает модель и представление через механизм привязки данных. Если в модели изменяются значения свойств, автоматически идет изменение отображаемых данных в представлении, хотя напрямую модель и представление не связаны. ViewModel также содержит логику по получению данных из модели, которые потом передаются в представление. И также VewModel определяет логику по обновлению данных в модели.
Thread, task, примеры использования?

Класс Thread создает и контролирует поток. На входе указывается метод, который будет выполняться в потоке.
Класс Task позволяет запускать отдельную продолжительную задачу. Она запускается асинхронно в одном из потоков из пула потоков, но ее можно запускать и синхронно.

var t = new Thread(() => Thread.Sleep(1000));
t.IsBackground = false; //основной поток, система сама ожидает его завершение
t.Start();
Task.Run(() => Task.Delay(1000)).Wait(); //с использованием TPL
Какой интерфейс должен реализовать класс, чтобы к переменной данного типа был применим оператор foreach?

Оператор foreach может быть использован с переменными, которые реализуют интерфейс IEnumerable или IEnumerable, или с экземпляром любого типа, который удовлетворяет следующим условиям:

— должен содержать открытый метод GetEnumerator без параметров, возвращающий класс, структуру или тип интерфейса;
— тип возвращаемого значения метода GetEnumerator должен иметь открытое свойство Current и открытый метод MoveNext без параметров, возвращающий значение типа Boolean.
Когда использовать StringBuilder предпочтительнее, чем string?

StringBuilder предпочтительнее использовать, если строка часто изменяется.
Дайте определение паттерна синглтон и предложите реализацию.

Одиночка (Singleton, Синглтон) — порождающий паттерн, который гарантирует, что для определенного класса будет создан только один объект, а также предоставит к этому объекту точку доступа. Используется тогда, когда необходимо, чтобы для класса существовал только один экземпляр. Синглтоны бывают потокобезопасные и нет, с простой и отложенной инициализацией.
Разница IEnumerable и IQueryable при работе с удаленной БД?

Объект IEnumerable представляет набор данных в памяти и может перемещаться по этим данным только вперед.
IQueryable располагается в пространстве имен System.Linq. Объект предоставляет удаленный доступ к базе данных и позволяет перемещаться по данным как в прямом порядке от начала до конца, так и в обратном порядке. В процессе же выполнения запроса, происходит оптимизация запроса.

IEnumerable phoneIEnum = db.Phones;
var phones1 = phoneIEnum.Where(p => p.Id > id).ToList(); //SELECT * FROM PHONES, фильтрация на стороне клиента
IQueryable phoneIQuer = db.Phones;
int id = 3;
var phones2 = phoneIQuer.Where(p => p.Id > id).ToList(); //SELECT * FROM PHONES WHERE ID > 3