* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна!
Реализация свойств
8 февраля 2009
Свойства позволяют сделать доступ к значениям и объектам — членам класса, бо- лее устойчивым к ошибкам, чем при использовании обычных полей. В сущности, свойство — это специальный метод, внешне напоминающий поле. Значения свойств устанавливают и читают так же, как значения полей:
Visual Basic .NET 1 Установить свойство TextBox"!. Text TextBoxl.Text = "Text Property" Dim myString As String 1 Получить значение TextBoxl.Text и присвоить его леремеьной myStriig rnyString = TextBoxl.Text Visual C# // Установить свойство TextBoxl.Text textBoxl.Text = "Text property"; string rnyString; // Получить значение TextBoxl.Text и присвоить его переменной myString myString = textBoxl.Text; На этом уровне свойства выглядят и работают, как поля, но код, который «сто- ит» за свойствами, несколько сложнее. Свойство состоит из двух специальных ме- тодов: получателя (getter) и установщика (setter) . Далее показан пример объявле- ния свойства МуТехг. Visual Basic .NET 1 Создать закрытую локальную переменную для хранения значения свойства. Private mText As String Реализация свойства Public Property МуТехЦ) As String Get Вернуть значение локальной переменной. Return mText End Get Set(ByVal Value As String) ' Установить значение локальной переменной, mText = Value End Set End Property Visual C# // Создать закрытую локальную переменную для хранения значения свойства, private string mText; // Реализация свойства public string MyText get ; // Вернуть значение локальной переменной, return mText; : set // Установить значение локальной переменной. mText = value; В методе-установщике применяется специальное ключевое слово Value (value), представляющее новое значение, присваиваемое данному свойству. Свойства от- крывают доступ к объектам любого типа, а также к массивам и наборам. Объект или значение, предоставляемое свойством, обычно хранится в закрытой (private) локальной переменной (такой, как т Text из предыдущего примера); при получении свойства его значение извлекается из этой переменной. Пример, показанный выше, демонстрирует довольно примитивное свойство, ко- торое мало отличается от обычного поля. Одно из ключевых преимуществ свойств состоит в возможности размещения в методах, получающих и устанавливающих значение свойства, дополнительного кода, который выполняет необходимые вы- числения или проверяет введенное значение. Ниже показан пример свойства, пе- ред установкой которого новое значение проверяется. Visual Basic .NET Private mLength As Integer Public Property Length() As Integer Get 1 Вернуть значение локальной переменной. Return mLength End Get Set(ByVal Value As Integer) Проверяем, не превышает ли значение заданный предел (32). If Value > 32 Then MessageBox.Show(Value.ToString & is too large a value for this property!") Else mLength = Value End If End Set End Property Visual C# private int mLength; public int Length { get ! // Вернуть значение локальной переменной. return mLength; ^ 25 se // Проверяем, не превышает ли значение заданный предел (32). if (value > 32) MessageBox.Show( value. ToStringO + is too large a value for this property!"); else mLengtn = value; > Как создать свойство 1. Объявите закрытое поле или объект, в котором будет храниться значение (или объект), возвращаемое этим свойством. 2. Напишите для свойства код, возвращающий значение. 3. Добавить, если необходимо, дополнительный код проверки в метод, устанавли- вающий значение или получающий значение свойства.