Книга: C# для профессионалов. Том II

Классы и структуры

В C++ классы и структуры очень похожи. Формально единственное различие состоит в том, что члены структуры являются по умолчанию открытыми, в то время как члены класса являются по умолчанию закрытыми. На практике, однако, многие программисты предпочитают использовать структуры и классы различным образом, сохраняя использование структур для объектов данных, которые содержат только члены-переменные (другими словами, без функций членов или явных конструкторов).

C# отражает это традиционное различие использования. В C# класс — это совершенно другой тип объектов, по сравнению со структурой, поэтому нет необходимости тщательно рассматривать, будет ли лучше определить заданный объект как класс или как структуру. Наиболее важные различия между классами C# и структурами C# следующие:

? Структуры не поддерживают наследование, кроме того факта, что они являются производными из System.ValueType. Невозможно наследовать от структуры и структура не может наследовать от другой структуры или класса.

? Структуры являются типами данных значений. Классы всегда являются ссылочными типами данных.

? Структуры позволяют организовать способ размещения полей в памяти и определяют эквивалент объединений C++.

? Конструктор структуры по умолчанию (без параметров; всегда поставляется компилятором и не может быть заменен.

Поскольку классы и структуры сильно отличаются в C#, они в этом приложении рассматриваются по отдельности.

Оглавление книги


Генерация: 0.795. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз