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

       

Функции


Чтобы создать новую функцию или процедуру в окне программы, установите курсор за пределами других процедур и функций и начинайте вводить заголовок процедуры или функции. Как только вы нажмете клавишу Enter, редактор IDE автоматически создаст команду End правильного типа (End Functi on или End Sub). Ниже приведен заголовок функции, которая получает целый параметр по значению и возвращает логическую величину (True или False) в зависимости от того, принадлежит ли переданный параметр интервалу от 1 до 10: Function IsBetweenlAnd10(ByVal num As Integer) As Boolean

В режиме жесткой проверки типов (Option Strict) при объявлении функции необходимо указывать тип возвращаемого значения (в нашем примере — Boolean).

Полный текст модуля с функций Is Between lAnd 10 приведен ниже. Порядок следования функций не важен — функция Sub Mai n может находиться и после определения функции, которая в ней используется.

Module Modulel

Function IsBetweenlAnd10 (ByVal num As Integer) As Boolean

If num >= 1 And num <=10 Then

Return True

Else

Return False

End If

End Function

Sub Main()

Console. WriteLinedsBetweenlAnd100))



Console. ReadLine()

End Sub

End Module

В VB .NET при вызове функции или процедуры непустой список параметров всегда заключается в круглые скобки, как в строке с вызовом Console.WriteLine: IsBetweenlAnd100)

Обратите внимание на ключевое слово Return. При выполнении команды Return функция завершается и возвращает значение, указанное после Return (значение должно быть определенным — возвращение аналога voi d не допускается). Также поддерживается синтаксис с присваиванием имени функции, использовавшийся в прежних версиях VB:

Function IsBetweenlAnd10(ByVal num As Integer) As Boolean

If num >= 1 And num <= 10 Then

IsBetweenlAnd10 = True Else

IsBetweenlAnd10= False

End If

End Function

Использование Return — дело вкуса. Команда Return нагляднее и проще, но старый синтаксис оставляет управление внутри функции, а это иногда бывает удобно.



Обобщенная форма определения функции выглядит следующим образом:

Function имя_функции (аргумент1, аргумент2, ...) As тип

команды

Return выражение ' или имя_функции = выражение

End Function

где аргумент1 и аргумент2 — переменные. Имена функций подчиняются тем же правилам, что и имена переменных. При вызове функции VB .NET выполняет команды, содержащиеся в определении функции. Значение, указанное после Return (или последнее значение, присвоенное имени функции), определяет результат вызова.

Хотя возвращаемое значение обычно используется в программе, VB также позволяет вызвать функцию простой командой вида foo(3) без присваивания.

Обычно количество аргументов, передаваемых при вызове функции, должно совпадать с количеством параметров в ее определении. Типы аргументов должны быть совместимы с типами соответствующих параметров, при этом автоматически выполняются только расширяющие преобразования. Например, следующий фрагмент допустим, поскольку преобразование Short в Integer не приводит к потере данных:

Dim bar As Short = 3

Console.WriteLinedsBetweenlAnd10(bar))

VB .NET позволяет создавать функции с переменным числом аргументов. Дополнительная информация приведена далее в этой главе.


Содержание раздела