Структуры в C# — компактные аналоги классов, подходящие для простых случаев, когда не требуются наследование, виртуальные методы и другие сложные функции.
Что такое структуры?
Структуры — упрощённая версия классов. Они предпочтительнее, когда нужен простой класс без наследования, абстрактных методов, виртуальных методов и других расширенных возможностей. Если класс содержит только обычные методы и поля, структура эффективнее.
Создание структуры
Создание структуры аналогично созданию класса, за исключением ключевого слова struct вместо class. Пример структуры Book:
public struct Book
{
public string name;
public string author;
}
Определена структура Book с полями name (имя книги) и author (автор книги). В структуры, как и в классы, можно добавлять методы.
Создание объекта структуры
В отличие от классов, при создании объектов структур не используется ключевое слово new. Структуры — типы значений, а не ссылочные типы. Создание объекта:
Book book1;
book1.name = "King";
Создана переменная book1 типа Book и присвоено значение полю name. Обращение к полям структуры аналогично обращению к полям класса.
Использование структур
Несмотря на функциональные ограничения по сравнению с классами (отсутствие наследования, виртуальных методов, деструкторов и конструктора по умолчанию), структуры занимают меньше памяти. Это оптимизирует приложение и повышает производительность.
Структуры предпочтительны, когда:
- Нужен простой объект с небольшим количеством полей.
- Не требуется наследование или виртуальные методы.
Для полноценного класса с наследованием, виртуальными методами и другими расширенными функциями следует использовать класс. Однако для небольших объектов структуры обеспечивают более эффективное использование памяти; выигрыш заметен в больших программах.
Структуры — простой и эффективный инструмент в C#, позволяющий создавать компактные объекты, когда не нужна функциональность классов. Выбор между структурой и классом зависит от задачи и требований к производительности.