Свойства (руководство по программированию в 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#)
Асимметричные методы доступа (Руководство по программированию в C#)
Автоматически реализуемые свойства (Руководство по программированию на C#)
Спецификация языка C#
Дополнительные сведения см. в следующих разделах документа Спецификация языка C#:
1.6.7.2 Свойства
10.2.9.1 Имена членов, зарезервированные для свойств
10.7 Свойства
См. также
Основные понятия
Руководство по программированию в C#
Ссылки
Использование свойств (руководство по программированию в C#)