ПОНЯТНО О Visual Basic NET (том 3)


Конструкторы - часть 3


Для краткости я здесь отказался от текстовых полей.

Как видите, при помощи параметров конструктора мы можем задать значения полям Владелец и Высота_забора, свойству Длина_участка, а также добраться извне до модульной переменной Ширина, невидимой снаружи.

Обратите внимание, что при создании участка Берлаги свойство Длина_участка выдало сообщение, что участок слишком длинный. То есть свойство работает.

Проблема с именами. Мы придумали параметрам не очень-то хорошие имена. А зачем было вообще придумывать? Нельзя ли было обойтись старыми и написать так? –

    Public Sub New(ByVal Владелец As String, ByVal Длина_участка As ……………………

        Владелец = Владелец

        Длина_участка = Длина_участка

        ………………………

Нельзя, потому что непонятно, чем отличается левая часть оператора присваивания от правой. А вот так писать можно:

    Public Sub New(ByVal Владелец As String, ByVal Длина_участка

As Integer,  _

ByVal Ширина

As Integer, ByVal Высота_забора As Integer)

        Me.Владелец = Владелец

        Me.Длина_участка = Длина_участка

        Me.Ширина = Ширина

        Me.Высота_забора = Высота_забора

        Число_созданных_объектов = Число_созданных_объектов + 1

        Номер_участка = Число_созданных_объектов

    End Sub

Пояснения: Возьмем владельца. В теле процедуры встречаются две переменные с одинаковым именем Владелец. Одна из них объявлена в списке параметров процедуры и поэтому является в теле процедуры локальной. Другая объявлена в классе и является глобальной. Ясно, что локальная ее затеняет. Поэтому, когда мы пишем просто имя переменной Владелец, как написано в правой части оператора

        Me.Владелец = Владелец

то компьютер понимает, что это параметр. Когда же мы в левой части упомянутого оператора написали Me с точкой, VB развернул перед нами список полей и свойств класса, откуда мы выбрали поле Владелец. Мы видим, что выражение Me.Владелец обозначает глобальную переменную.

Аналогичные рассуждения можно провести и для других параметров.




Начало  Назад  Вперед



Книжный магазин