Книга: C# для профессионалов. Том II
Структуры
Структуры
Синтаксис определения структур в C# соответствует синтаксису определения классов.
struct MyStruct {
private SomeField;
public int SomeMethod() {
return 2;
}
}
Наследование и связанные концепции, виртуальные и абстрактные функции не допускаются. В остальном базовый синтаксис идентичен синтаксису классов, за исключением того, что ключевое слово struct
заменяет в определении class
.
Существуют, однако, различия между структурами и массами, когда дело доходит до создания. В частности, структуры всегда имеют конструктор по умолчанию, который обнуляет все поля, и этот конструктор по-прежнему присутствует, даже если определены другие собственные конструкторы. Также невозможно явно определить конструктор без параметров для замены конструктора по умолчанию. Можно определить только конструкторы с параметрами. В этом отношении структуры в C# отличаются от своих аналогов в C++.
В отличие от классов в C#, структуры являются типом данных значений. Это означает, что такая инструкция как:
MyStruct Mine;
реально создает экземпляр MyStruct
в стеке. Однако в C# этот экземпляр не инициализируется, если конструктор не вызван явно:
MyStruct Mine = new MyStruct();
Если все поля-члены из MyStruct
являются открытыми, можно альтернативно инициализировать структуру, преобразуя каждое поле-член по отдельности.
- 1.4 Структуры данных, связанные с драйверами устройств Windows
- ВЛОЖЕННЫЕ СТРУКТУРЫ
- Практическая работа 35. Создание структуры документа и вставка оглавления
- Разработка структуры базы данных
- 6.2. Типы и структуры данных
- Ветвящиеся структуры – архитектура мира растений
- Построение структуры веб-страницы
- Фундаментальные алгоритмы и структуры данных в Delphi
- 4.2. Представление базовой структуры программы
- 14. Структуры и другие типы данных
- Структуры данных процесса
- Структуры данных