Свойства (руководство по программированию в C#)

Обновлен: Ноябрь 2007

Свойства — это члены, предоставляющие гибкий способ для чтения, записи или вычисления значений частных полей. Свойства можно использовать, как если бы они являлись открытыми членами данных, хотя в действительности они являются специальными методами, называемыми методами доступа. Это обеспечивает простой доступ к данным и позволяет повысить уровень безопасности и гибкости методов.

В данном пример класс TimePeriod хранит сведения о периоде времени. Внутри класса время хранится в секундах, но свойство с именем Hours позволяет клиенту задать время в часах. Методы доступа для свойства Hours выполняют преобразование между часами и секундами.

Пример

class TimePeriod
{
    private double seconds;

    public double Hours
    {
        get { return seconds / 3600; }
        set { seconds = value * 3600; }
    }
}


class Program
{
    static void Main()
    {
        TimePeriod t = new TimePeriod();

        // Assigning the Hours property causes the 'set' accessor to be called.
        t.Hours = 24;

        // Evaluating the Hours property causes the 'get' accessor to be called.
        System.Console.WriteLine("Time in hours: " + t.Hours);
    }
}
// Output: Time in hours: 24

Общие сведения о свойствах

  • Свойства позволяют классу предоставлять общий способ получения и задания значений, скрывая при этом код реализации или проверки.

  • Метод доступа свойства get используется для возврата значения свойства, а метод доступа set используется для назначения нового значения. Эти методы доступа могут иметь различные уровни доступа. Дополнительные сведения см. в разделе Асимметричные методы доступа (Руководство по программированию в C#).

  • Ключевое слово value используется для определения значения, присваиваемого индексатором set.

  • Свойства, которые не реализуют метод set, доступны только для чтения.

  • Для простых свойств, не требующих пользовательского кода метода доступа, рассмотрите возможность использования автоматически реализуемых свойств. Дополнительные сведения см. в разделе Автоматически реализуемые свойства (Руководство по программированию на C#).

Связанные разделы

Спецификация языка C#

Дополнительные сведения см. в следующих разделах документа Спецификация языка C#:

  • 1.6.7.2 Свойства

  • 10.2.9.1 Имена членов, зарезервированные для свойств

  • 10.7 Свойства

См. также

Основные понятия

Руководство по программированию в C#

Разработка свойств

Ссылки

Использование свойств (руководство по программированию в C#)

Индексаторы (руководство по программированию в C#)