Встречается на 31% собеседований по C#

В чем разница между классом и структурой

Классы (class) и структуры (struct) в C# различаются по нескольким ключевым параметрам:

  1. Тип данных: классы — ссылочные типы (хранятся в куче), структуры — значимые типы (хранятся в стеке или внутри других объектов).
  2. Наследование: классы поддерживают наследование, структуры — нет.
  3. Null: классы могут быть null, структуры — нет (кроме Nullable<T>).
  4. Размер: структуры рекомендуются для небольших данных (обычно до 16 байт), классы — для сложных объектов.
  5. Присваивание: копирование структуры создает новую копию данных, копирование класса — только ссылку.
csharp
// Пример структуры
struct Point {
    public int X, Y;
}

// Пример класса
class Person {
    public string Name;
}

Когда использовать:

  • struct — для легковесных, неизменяемых данных (координаты, цвет).
  • class — для объектов с логикой, больших данных или требующих наследования.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы