Procedury podrzędne (Visual Basic)

Procedura Sub to seria instrukcji Języka Visual Basic ujęta w instrukcje Sub i End Sub . Procedura Sub wykonuje zadanie, a następnie zwraca kontrolę do kodu wywołującego, ale nie zwraca wartości do kodu wywołującego.

Za każdym razem, gdy procedura jest wywoływana, jego instrukcje są wykonywane, począwszy od pierwszej instrukcji wykonywalnej po Sub instrukcji i kończącej się pierwszą End Subinstrukcją , Exit Sublub Return napotkaną instrukcją.

Procedurę Sub można zdefiniować w modułach, klasach i strukturach. Domyślnie jest Publicto , co oznacza, że można wywołać go z dowolnego miejsca w aplikacji, która ma dostęp do modułu, klasy lub struktury, w której ją zdefiniowano. Termin metoda opisuje procedurę Sub lub Function dostępną spoza definiującego modułu, klasy lub struktury. Aby uzyskać więcej informacji, zobacz Procedury.

Procedura Sub może przyjmować argumenty, takie jak stałe, zmienne lub wyrażenia, które są przekazywane do niego przez kod wywołujący.

Składnia deklaracji

Składnia deklarowania Sub procedury jest następująca:

[modifiers] Sub SubName[(parameterList)]
    ' Statements of the Sub procedure.
End Sub

Element modifiers może określać poziom dostępu i informacje o przeciążeniu, zastąpieniu, udostępnieniu i cieniu. Aby uzyskać więcej informacji, zobacz Sub Statement .

Deklaracja parametru

Każdy parametr procedury jest deklarowany podobnie do sposobu deklarowania zmiennej, określając nazwę parametru i typ danych. Można również określić mechanizm przekazywania oraz określić, czy parametr jest opcjonalny, czy tablica parametrów.

Składnia dla każdego parametru na liście parametrów jest następująca:

[Optional] [ByVal | ByRef] [ParamArray] parameterName As DataType

Jeśli parametr jest opcjonalny, należy również podać wartość domyślną w ramach jego deklaracji. Składnia określania wartości domyślnej jest następująca:

Optional [ByVal | ByRef]  parameterName As DataType = defaultValue

Parametry jako zmienne lokalne

Gdy kontrolka przechodzi do procedury, każdy parametr jest traktowany jako zmienna lokalna. Oznacza to, że jego okres istnienia jest taki sam jak w przypadku procedury, a jej zakres to cała procedura.

Wywoływanie składni

Należy jawnie wywołać procedurę Sub z autonomiczną instrukcją wywołującą. Nie można go wywołać przy użyciu jego nazwy w wyrażeniu. Musisz podać wartości dla wszystkich argumentów, które nie są opcjonalne, i należy ująć listę argumentów w nawiasach. Jeśli nie podano żadnych argumentów, opcjonalnie można pominąć nawiasy. Użycie słowa kluczowego Call jest opcjonalne, ale nie jest zalecane.

Składnia wywołania Sub procedury jest następująca:

[Call] SubName[(argumentlist)]

Można wywołać metodę Sub spoza klasy, która ją definiuje. Najpierw musisz użyć New słowa kluczowego, aby utworzyć wystąpienie klasy lub wywołać metodę zwracającą wystąpienie klasy. Aby uzyskać więcej informacji, zobacz Nowy operator. Następnie możesz użyć następującej składni, aby wywołać metodę Sub w obiekcie wystąpienia:

object.MethodName[(argumentList)]

Ilustracja deklaracji i wywołania

Poniższa Sub procedura informuje operatora komputera, które zadanie ma wykonać aplikacja, a także wyświetla sygnaturę czasową. Zamiast duplikować ten kod na początku każdego zadania, aplikacja po prostu wywołuje je tellOperator z różnych lokalizacji. Każde wywołanie przekazuje ciąg w argumencie task , który identyfikuje uruchomione zadanie.

Sub tellOperator(ByVal task As String)
    Dim stamp As Date
    stamp = TimeOfDay()
    MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub

W poniższym przykładzie pokazano typowe wywołanie metody tellOperator.

tellOperator("file update")

Zobacz też