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



              


11.5.2. Параметры объектного типа


В качестве параметров мы пока использовали переменные числовых и строкового типов. Параметр – это переменная. Переменная  может иметь объектный тип. Значит и параметр может иметь объектный тип.

Как это понимать и какая от этого польза? Рассмотрим два примера.

Пример 1. Параметр типа Control. Для задания размеров элемента управления требуется два оператора – один для ширины, другой – для высоты. Предположим, вы хотите обойтись одним. Особого смысла в этом нет, но для иллюстрации подойдет. Создайте проект и поместите на форму метку и две кнопки. Введите такой код:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Настраиваем_размер(Button2, 80, 30)

        Настраиваем_размер(Label1, 100, 120)

End Sub

Sub Настраиваем_размер(ByVal Элемент_упр As Control, ByVal Ширина As Integer, ByVal Высота As Integer)

        Элемент_упр.Width = Ширина

        Элемент_упр.Height = Высота

End Sub

Пояснения. Оператор

        Настраиваем_размер(Button2, 80, 30)

делает ширину кнопки Button2 равной 80, а высоту – 30. А оператор

        Настраиваем_размер(Label1, 100, 100)

делает ширину метки Label1 равной 100, а высоту – 120. Мы добились того, чего хотели. Как это у нас получилось?

Оба приведенные оператора являются вызовами процедуры пользователя Настраиваем_размер. Посмотрите на ее заголовок. Первый параметр – Элемент_упр –  имеет тип Control – объектный тип элементов управления. Это значит, что он может, например, принимать значение любого элемента управления на форме.

Обязательно зайдите в пошаговый режим и обратите внимание, что переменная Элемент_упр, как и положено параметру, инициализируется, несмотря на то, что она не обычная, а объектная. Пока мы не зашли в процедуру Настраиваем_размер, она, естественно, не инициализирована и подсказка просто сообщает, что она объявлена, как мы и задали, типом System.Windows.Forms.Control. Здесь System.Windows.Forms – пространство имен, в которое входит класс Control. Но как только VB заходит в процедуру, переменная Элемент_упр становится объектом класса System.Windows.Forms.Button. При втором обращении –  System.Windows.Forms.Label.




Содержание  Назад  Вперед