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

Свойство

Свойство выглядит как поле, но реализуется аксессорами get и set. В get возвращают значение, в set записывают (через ключевое слово value). Автосвойство { get; set; } создаёт скрытое поле компилятором. Вычисляемое свойство считает результат в get без отдельного хранения.

Синтаксис

тип Имя { get; set; } тип Имя { get { return поле; } set { поле = value; } }

Пример

Давайте объявим автосвойство и запишем в него значение:

using System; class Row { public string Text { get; set; } } class Program { static void Main() { var row = new Row(); row.Text = "abcde"; Console.WriteLine(row.Text); } }

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

"abcde"

Пример

Давайте ограничим запись в свойство через явный set:

using System; class Score { private int points; public int Points { get { return points; } set { if (value >= 0) { points = value; } } } } class Program { static void Main() { var score = new Score(); score.Points = 5; score.Points = -1; Console.WriteLine(score.Points); } }

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

5

Пример

Давайте сделаем вычисляемое свойство по длине строки:

using System; class Label { public string Text { get; set; } = "abcde"; public int Length { get { return Text.Length; } } } class Program { static void Main() { var label = new Label(); Console.WriteLine(label.Length); } }

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

5

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

  • инициализатор init,
    который разрешает запись только при создании
  • модификатор required,
    который требует задать свойство в инициализаторе
  • индексатор this[],
    который задаёт доступ по индексу
  • модификатор public,
    который открывает свойство снаружи типа
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить