Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1054 of 1492 menu
◀ ▶

Ключевое слово struct

Ключевое слово struct объявляет тип-значение. Переменная хранит данные напрямую, а при присваивании получается копия. Изменение копии не затрагивает исходное значение - в отличие от class. Структуры не поддерживают наследование от других типов, кроме интерфейсов.

Синтаксис

struct Имя { // поля, свойства, методы }

Пример

Давайте создадим структуру с полем и выведем его:

using System; struct Point { public int X; public int Y; } class Program { static void Main() { var point = new Point { X = 1, Y = 2 }; Console.WriteLine(point.X); } }

Результат выполнения кода:

1

Пример

Давайте убедимся, что присваивание копирует значение:

using System; struct Counter { public int Value; } class Program { static void Main() { var first = new Counter { Value = 5 }; var second = first; second.Value = 10; Console.WriteLine(first.Value); } }

Результат выполнения кода:

5

Пример

Давайте изменим поле структуры через ref:

using System; struct Counter { public int Value; } class Program { static void Double(ref int num) { num *= 2; } static void Main() { var counter = new Counter { Value = 3 }; Double(ref counter.Value); Console.WriteLine(counter.Value); } }

Результат выполнения кода:

6

Смотрите также

  • ключевое слово class,
    которое объявляет ссылочный тип
  • ключевое слово record struct,
    которое задаёт запись-значение
  • модификатор ref,
    который передаёт поле структуры по ссылке
  • тип int,
    который тоже является типом-значением
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить