17 Essential .NET Interview Questions Flashcards
Что такое наследование и почему оно важно?
Наследование — это один из ключевых принципов ООП, позволяющий создавать новые классы на основе существующих. Оно помогает в повторном использовании кода и ускоряет разработку. Базовый класс передает свои члены производному классу.
В чем разница между классом и объектом?
Класс — это шаблон, который описывает свойства и поведение объекта. Объект — это экземпляр класса. Один класс может порождать несколько объектов с разными значениями свойств.
В чем разница между управляемым и неуправляемым кодом?
Управляемый код выполняется в среде CLR, обеспечивающей сборку мусора, проверку типов и обработку исключений. Неуправляемый код компилируется в машинный код и требует ручного управления памятью.
В чем разница между циклом while и for?
Цикл for используется, когда известно количество итераций, а while — когда повторение выполняется до выполнения условия.
Что такое упаковка (boxing) и распаковка (unboxing)?
Упаковка — преобразование значимого типа в object, распаковка — извлечение значимого типа из object. Упаковка выполняется неявно, распаковка — явно.
Что такое LINQ?
LINQ (Language Integrated Query) — это набор операторов запросов, встроенных в .NET, позволяющий работать с данными в коллекциях, базах данных, XML и других источниках.
Что такое сборка мусора и как она работает?
Сборка мусора автоматически управляет памятью, освобождая объекты, которые больше не используются. Для принудительного запуска используется System.GC.Collect();.
Что означают сокращения IL, CIL, MSIL, CLI и JIT?
IL (Intermediate Language) — промежуточный код, компилируемый JIT в машинный код. В .NET он называется CIL (Common Intermediate Language), ранее — MSIL (Microsoft Intermediate Language). CLI (Common Language Infrastructure) — спецификация, описывающая выполнение кода. JIT (Just-In-Time) — компилятор, выполняющий IL-код на машине.
В чем разница между стеком и кучей?
Стек хранит значения (типы ValueType), отвечает за выполнение кода. Куча хранит объекты (ReferenceType) и управляется сборщиком мусора.
В чем разница между интерфейсом и абстрактным классом?
Интерфейс определяет контракт без реализации. Абстрактный класс может содержать реализацию и абстрактные методы. Оба нельзя создать как объект.
В чем разница между отложенным и немедленным выполнением LINQ-запросов?
При отложенном выполнении (deferred execution) запрос выполняется при итерации. Немедленное (immediate execution) выполняется сразу при вызове ToList(), Count(), Sum().
Что такое делегат в .NET?
Делегат — это указатель на метод, позволяющий передавать методы как параметры. Используется для событий и обратных вызовов.
Можно ли реализовать обобщенный метод в WebAPI?
Нет, так как WebAPI требует определения сигнатур методов заранее.
Почему в интерфейсе нельзя задать модификаторы доступа?
Все члены интерфейса по умолчанию являются public.
Что делает break в двух вложенных циклах?
break завершает выполнение только внутреннего цикла.
Какие методы предоставляет класс System.Object?
ToString(), Equals(), GetHashCode(), Finalize(), GetType(), ReferenceEquals(), MemberwiseClone().
В чем разница между const и readonly?
const вычисляется во время компиляции и может быть только значимым типом. readonly вычисляется во время выполнения и может содержать ссылочные типы.