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

Краткое изложение каждого:

Только классы:

  • Может поддерживать наследование
  • Являются ссылочными (указательными) типами
  • Ссылка может быть нулевой
  • Есть накладные расходы памяти на новый экземпляр

Только структуры:

  • Не поддерживает наследование
  • Типы значений
  • Передаются по значению (как целые числа)
  • Не может иметь нулевую ссылку (если не используется Nullable)
  • Отсутствие накладных расходов на память для каждого нового экземпляра — если он не «упакован»

Оба класса и структуры:

  • Составные типы данных, обычно используемые для хранения нескольких переменных, между которыми существует логическая связь
  • Может содержать методы и события
  • Может поддерживать интерфейсы

dotnet

.net

class

struct

value-type

reference-type

2022-11-17T21:51:12+00:00