Иллюстрированный самоучитель по Visual Basic .NET

Передача массивов функциям и процедурам. Процедуры и функции с необязательными аргументами.

В VB.NET, как и в прежних версиях VB, существуют удобные средства для работы с одномерными и многомерными массивами в процедурах и функциях. Впрочем, существуют некоторые нюансы, обусловленные передачей по ссылке и по значению; мы рассмотрим их в главе 4. Перебор содержимого массива осуществляется конструкцией For Each или (более распространенный вариант) стандартным циклом For с вычислением верхней границы при помощи функции UBound (). Ниже приведен пример функции поиска максимального элемента в массиве:

Function FindMax(ByVa1 a() As Integer
Dim finish As Integer = UBound(a)
Dim max As Integer = a(0)
Dim i As Integer
For i = 0 To finish
If a(i) > max Then max = a(i)
Next i
Return max End Function

Обобщенная форма вызова UBound(имя_массива, I) возвращает верхнюю границу по 1-му измерению массива. Для одномерных массивов (списков) параметр 1 является необязательным.

Примечание
Для проверки также можно воспользоваться методом Length, реализованным в классе массива, но этот метод возвращает количество элементов в массиве вместо верхней границы (в многомерных массивах эти величины не совпадают)
.

Процедуры и функции с необязательными аргументами

В VB.NET сохранена возможность определения процедур и функций с необязательными аргументами, но в отличие от VB6 для каждого необязательного параметра должно быть указано значение по умолчанию. Следующий пример демонстрирует синтаксис объявления необязательных параметров:

Sub ProcessAddress(TheName As String,
Address As String. City As String. State As String.
ZipCode As String. Optional ZipPlus4 As String = "0000")

В данном примере последний параметр является необязательным (Optional) и по умолчанию равен "0000".

Примечание
В главе 4 описана перегрузка (overloading) – другой способ определения функций с необязательными параметрами
.

VB.NET также позволяет определять процедуры и функции с произвольным количеством аргументов. Для этого в качестве параметра передается массив с ключевым словом РаramАrrау, как в следующем примере:

Function AddThemUp(ByVal ParamArray stuff() As Double) As Double
Dim total As Double = 0
Dim Number As Double = 0
Dim I As Integer
For I = 0 To UBound(stuff)
total = total + stuff(I)
Next
Return total End Function

Пример использования функции:

x = AddThemUp(3, 4. 5. 6)

В результате переменной х присваивается значение 18.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.