Книга: C# для профессионалов. Том II
Классы и структуры
В C++ классы и структуры очень похожи. Формально единственное различие состоит в том, что члены структуры являются по умолчанию открытыми, в то время как члены класса являются по умолчанию закрытыми. На практике, однако, многие программисты предпочитают использовать структуры и классы различным образом, сохраняя использование структур для объектов данных, которые содержат только члены-переменные (другими словами, без функций членов или явных конструкторов).
C# отражает это традиционное различие использования. В C# класс — это совершенно другой тип объектов, по сравнению со структурой, поэтому нет необходимости тщательно рассматривать, будет ли лучше определить заданный объект как класс или как структуру. Наиболее важные различия между классами C# и структурами C# следующие:
? Структуры не поддерживают наследование, кроме того факта, что они являются производными из System.ValueType
. Невозможно наследовать от структуры и структура не может наследовать от другой структуры или класса.
? Структуры являются типами данных значений. Классы всегда являются ссылочными типами данных.
? Структуры позволяют организовать способ размещения полей в памяти и определяют эквивалент объединений C++.
? Конструктор структуры по умолчанию (без параметров; всегда поставляется компилятором и не может быть заменен.
Поскольку классы и структуры сильно отличаются в C#, они в этом приложении рассматриваются по отдельности.
- Классы сертификатов
- Совет 40. Классы функторов должны быть адаптируемыми
- Лекция 7. Статические структуры: классы
- 9.1. Классы и прототипы
- 1.4 Структуры данных, связанные с драйверами устройств Windows
- Статические классы
- ВЛОЖЕННЫЕ СТРУКТУРЫ
- 9.8. Классы в ECMAScript 5
- 9.7.4. Иерархии классов и абстрактные классы
- Классы синхронизации, внедренные в версии .NET Framework 4.0
- Практическая работа 35. Создание структуры документа и вставка оглавления
- Классы для программирования графики