Встречается на собеседованиях • сегодня

В чём разница между struct и class

Структуры (struct) и классы (class) в C# отличаются семантикой, поведением и использованием.

  1. Тип данных:

    • struct — тип значения (хранится в стеке или внутри других объектов).
    • class — ссылочный тип (хранится в куче, переменные содержат ссылку).
  2. Наследование:

    • struct не поддерживает наследование (кроме System.ValueType).
    • class поддерживает полиморфизм и наследование.
  1. Инициализация:

    • struct нельзя создать без параметров (если нет конструктора по умолчанию).
    • class можно создать через new или null.
  2. Изменяемость:

    • struct копируется при передаче (изменения в методе не влияют на оригинал).
    • class передаётся по ссылке (изменения видны везде).
csharp
// Пример struct
struct Point { public int X, Y; }

// Пример class
class Person { public string Name; }

var p1 = new Point { X = 1, Y = 2 }; // Значение
var p2 = p1; // Копирование
p2.X = 5;    // p1.X останется 1

var person1 = new Person { Name = "Alice" };
var person2 = person1; // Ссылка
person2.Name = "Bob";  // person1.Name тоже изменится

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

  • struct — для небольших, неизменяемых данных (координаты, цвет).
  • class — для сложных объектов с логикой и состоянием.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы