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

Процедуры. Преждевременный выход из функций или процедур.

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

Option Strict On
Module Modulel
Sub ShowBottlesOfBeer(ByVal nbot As Integer)
Console.WriteLine(nbot & " bottles of beer on the wall")
Console.Writeline(nbot & " bottles of beer.")
Console.WriteLine("if one of those bottles hsould happen to fall")
Console.WriteLine(nbot -1&" bottles of beer on the wall")
End Sub
Sub Main()
Dim I As Integer
For I = 10 To 1 Step -1
ShowBottlesOfBeer(I)
Next
Console.WriteLine("All beer gone…")
Console. ReadLine()
End Sub
End Module

При вызове процедур указывать ключевое слово Sub не обязательно. Строку с вызовом процедуры из приведенного выше примера можно было записать и в таком виде:

Call ShowBottlesOfBeer(I)

Заголовок процедуры должен содержать объявления всех параметров с ключевыми словами ByVal или ByRef (по умолчанию используется ByVal, то есть передача по значению):

Sub имя_процедуры(В(ByVа1 аргумент1 As тип. ByVal аргумент2 As тип, ….)
[команды]
End Sub

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

Преждевременный выход из функций или процедур

В некоторых ситуациях требуется покинуть функцию до того, как будет достигнута стандартная точка выхода (например, если проверка покажет, что исходные данные неверны и дальнейшие вычисления бессмысленны). Команда Return немедленно передает управление вызывающей стороне (если не определена секция Finally – см. главу 7):

Function BallOut (X As Double) As Double If X < 0 Then
Return 0' Вернуть фиктивное значение Else
' Основные действия
End If
End Function
'Выход из процедур осуществляется командой
Exit Sub.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.