C#. Вопросы и ответы к собеседованию. Часть 5

Вопрос 42

В чем разница инкапсуляции и сокрытия?

Ответ

Сокрытие – более общий термин. Инкапсуляция – частный случай в ООП. Инкапсуляция – технология, при которой  мы прячем поле от доступа напрямую и даем к нему доступ через свойства и методы.

Более подробно на Stack

Вопрос 43

Что такое частные и общие сборки?

Ответ

Частная сборка – файл exe или dll, содержащий классы, частную сборку кладут рядом с проектом, в каталог программы и подключают.

Общие сборки хранятся в GAC – global access cache.

Вопрос 44

Что такое .Net Framework?

Ответ

.NET Framework — программная платформа, выпущенная компанией Microsoft в 2002 году. Основой платформы является общеязыковая среда исполнения Common Language Runtime (CLR), которая подходит для разных языков программирования. Функциональные возможности CLR доступны в любых языках программирования, использующих эту среду.

Вопрос 45

Чем управляемый код (managed code) отличается от неуправляемого (unmanaged code)?

Ответ

Управляемый код – автоматическая сборка мусора. Можно просто создавать объекты.

Неуправляемый код – нужно удалять объекты в ручную.

В первом приближении управляемым кодом называется код, выполнение которого управляется средой выполнения. В этом случае соответствующая среда выполнения называется общеязыковой средой выполнения или средой CLR, независимо от реализации (Mono, .NET Framework или .NET Core). Среда CLR отвечает за использование управляемого кода, его компиляцию в машинный код и последующее выполнение.Кроме того, среда выполнения предоставляет несколько важных служб, таких как автоматическое управление памятью, границы безопасности, безопасность типа и т. д.

Более подробно на сайте Microsoft

Вопрос 46

LINQ lazy loading, eager loading в чем разница

Ответ

В Entity Framework есть три способа загрузки данных:

  • eager loading(“жадная загрузка”)
  • explicit loading(“явная загрузка”)
  • lazy loading(“ленивая загрузка”)

Более подробно на metanit

Также на Stack

Вопрос 47

Можно ли запретить наследование от своего собственного класса?

Ответ

Да, модификатором sealed. Пример

Вопрос 48

Можно ли разрешить наследование класса, но запретить переопределение метода?

Ответ

Да, модификатором sealed. Пример

Вопрос 49

Определение паттерна синглтон.

Ответ

Это класс, который позволяет создавать только один экземпляр

Примеры реализации

Вопрос 50

Thread, task, примеры использования?

Примеры для Thread (подробнее на metanit)

Примеры для Task (подробнее на metanit)

Вопрос 51

Что такое интеграционные тесты и unit-тесты?

  • Блочное (Unit testing) — тестирование одного модуля в изоляции.
  • Интеграционное (Integration Testing) — тестирование группы взаимодействующих модулей.
  • Системное (System Testing) — тестирование системы в целом.

Вопрос 52

Что такое MVVM?

Ответ

  • Модель (англ. Model) (так же, как в классической MVC) представляет собой логику работы с данными и описание фундаментальных данных, необходимых для работы приложения.
  • Представление (англ. View) — графический интерфейс (окна, списки, кнопки и т. п.). Выступает подписчиком на событие изменения значений свойств или команд, предоставляемых Моделью Представления. В случае, если в Модели Представления изменилось какое-либо свойство, то она оповещает всех подписчиков об этом, и Представление, в свою очередь, запрашивает обновлённое значение свойства из Модели Представления. В случае, если пользователь воздействует на какой-либо элемент интерфейса, Представление вызывает соответствующую команду, предоставленную Моделью Представления.
  • Модель Представления (англ. ViewModel) — с одной стороны, абстракция Представления, а с другой — обёртка данных из Модели, подлежащие связыванию. То есть, она содержит Модель, преобразованную к Представлению, а также команды, которыми может пользоваться Представление, чтобы влиять на Модель.

Вопрос 53

Что будет выведено в результате выполнения программы?

Варианты ответов:

  1. 0
  2. 1
  3. 16
  4. Возникнет ошибка на этапе компиляции

Ответ

16

Вопрос 54

Когда использовать StringBuilder предпочтительнее, чем string:

  1. Если строка редко изменяется
  2. Если строка часто изменяется
  3. Если строка содержит спецсимволы
  4. Если строка содержит исключительно цифры

Ответ

Если строка часто изменяется. Так как после присвоения значения строка становится immutable, поэтому для изменения значения нужно создавать новый объект.

Вопрос 55

Что будет выведено в результате выполнения программы?

Варианты ответов:

  1. 8
  2. 8 3
  3. 8 0
  4. Возникнет ошибка на этапе компиляции

Ответ

Возникнет ошибка на этапе компиляции.  Out параметр должен быть проинициализирован внутри метода.

Вопрос 56

Что будет выведено в результате выполнения программы?

Варианты ответов:

  1. 0
  2. 10
  3. Пустая строка
  4. Возникнет ошибка на этапе компиляции

Ответ

Возникнет ошибка на этапе компиляции. var должен быть проинициализирован

This entry was posted in C#. Bookmark the permalink.