В чем основные отличия класса от структуры в языке C#?



Основные отличия класса от структуры следующие:

✍🏻 Структура является размерным типом, а класс — ссылочным.

✍🏻 Все структурные типы неявно наследуются от System.ValueType, они не бывают абстрактными и всегда неявно запечатаны (sealed)

✍🏻 При присваивании переменных структурного типа, создается копия данных

✍🏻 Объявления полей структуры не могут иметь инициализаторов

✍🏻 Различная интерпретация this для структуры и класса

✍🏻 Структура не может содержать конструктор без параметров

✍🏻 Структура не может содержать деструктор

✍🏻 Для ссылочных типов значение по умолчанию — null

✍🏻 При конвертировании между ссылочным и размерным типами происходит упаковка и распаковка.