C# Структуры: Уроки и примеры

Структуры в 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#, позволяющий создавать компактные объекты, когда не нужна функциональность классов. Выбор между структурой и классом зависит от задачи и требований к производительности.

Что будем искать? Например,программа