Sub 語句
描述
聲明 Sub 過程的名稱、參數以及構成其主體的代碼。
語法
[Public | Private] Sub name [(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub
Sub 語句的語法包含以下部分
部分 描述
Public 表示 Sub 過程可被所有 Script 中的所有其他過程訪問。
Private 表示 Sub 過程只可被聲明該過程的 Script 中的其他過程訪問。
Name Sub 的名稱,遵循標準變量命名約定。
Arglist 代表在調用時要傳遞給 Sub 過程的參數的變量列表。用逗號隔開多個變量。
Statements 在 Sub 過程主體內所執行的任何語句組。
arglist 參數包含下列語法和部分:[ByVal | ByVal] varname[( )]
部分 描述
ByVal 表示該參數按值傳遞。
ByRef 表示該參數按引用傳遞。
Varname 代表參數的變量名稱,遵循標準變量命名約定。
說明
如沒有顯式地指定使用 Public 或 Private,則 Sub 過程默認爲公用,即它們對於 Script
中的所有其他過程都是可見的。Sub 過程中局部變量的值在調用過程中不被保留。
所有可執行代碼必須包含於過程中。不能在另一個 Sub 或 Function 過程中定義一個 Sub 過程。
使用 Exit Sub 語句可以立即從 Sub 過程中退出。程序繼續執行調用 Sub 過程的語句之後的語句。可以在 Sub
過程中任意位置出現任意個 Exit Sub 語句。
與 Function 過程相似之處是:Sub 過程是一個可以獲取參數,執行一系列語句以及可改變其參數的值的獨立過程。而與
Function 過程不同之處是:Function 過程可以返回值,而 Sub 過程不能用於表達式中。
可以使用過程名並跟隨相應的參數列表來調用 Sub 過程。關於如何調用 Sub 過程的詳細說明信息,請參閱 Call
語句。
小心 Sub 過程可以是遞歸的,即該過程可以調用自己來完成某個給定的任務。但是遞歸可能會導致堆棧溢出。
在 Sub 過程中使用的變量分爲兩類:一類是在過程內顯式聲明的,另一類則不是。在過程內顯式聲明的變量(使用 Dim
或等效方法)總是局部變量。對於那些沒有在過程中顯式聲明的變量也是局部的,除非在該過程外更高級別的位置顯式地聲明它們。
小心 過程可以使用沒有在過程內顯式聲明的變量,但只要有任何 script
級定義的名稱與之同名,就會產生名稱衝突。如果過程中引用的未聲明的變量與其他的過程、常數或變量的名稱相同,則會認爲過程引用的是Script
級的名稱。顯式聲明變量可以避免這類衝突,使用 Option Explicit 語句可強制顯式聲明變量。
Visual Basic 語言概念
Sub 過程
Sub 過程是包含在 Sub 語句和 End Sub 語句中的一系列 Visual Basic
語句。每次調用過程時都執行過程中的語句,從 Sub 語句後的第一個可執行語句開始,到遇到的第一個 End Sub、Exit Sub 或
Return 語句結束。
Sub 過程執行操作但並不返回值。它能夠帶參數,如呼叫代碼傳遞給它的常數、變量或表達式。
聲明 Sub 過程的語法如下所示:
[accessibility] Sub subname[(argumentlist)]
' Statements of the Sub procedure go here.
End Sub
可訪問性可以是 Public、Protected、Friend、Protected Friend 或 Private。
可以在模塊、類和結構中定義 Sub 過程。默認情況下它們是 Public,這意味着可以從應用程序中的任意位置調用它們。
參數聲明
聲明過程的每個參數與聲明變量的方法一樣,都是指定參數名和數據類型。也可以指定傳遞機制,以及參數是否可選。
參數列表中每個參數的語法如下所示:
[Optional] [ByVal|ByRef] [ParamArray] argumentname As
datatype
如果參數是可選的,則還必須在其聲明中提供默認值,如下所示:
Optional [ByVal|ByRef] argumentname As datatype =
defaultvalue
調用語法
可以使用獨立的調用語句來顯式調用 Sub
過程。不能在表達式中使用其名稱來調用它。調用語句必須提供所有非可選參數的值,並且必須用括號將參數列表括起來。如果未提供任何參數,則也可以選擇省略括號。Call
關鍵字的使用也是可選的。
調用 Sub 過程的語法如下所示:
[Call] subname[(argumentlist)]
下面的 Sub
過程通知計算機操作員應用程序將要執行哪個任務,並且還顯示一個時間戳。應用程序不是在每個任務的開頭重複此代碼,而僅是從不同的位置調用
TellOperator。每次調用都會傳遞 Task 參數中的字符串以標識開始執行的任務。
Sub TellOperator(ByVal Task As String)
Dim Stamp As Date
' Stamp is local to
TellOperator.
Stamp = TimeOfDay()
' Get current time for time stamp.
' Use MessageBox class of System.Windows.Forms
namespace.
MessageBox.Show("Starting " & Task & "
at " & CStr(Stamp))
End Sub
典型的 TellOperator 調用如下所示:
Call TellOperator("file update")
請參見
過程 | 事件處理過程 | Function 過程 | Property 過程 | 過程參數 | Sub 語句
VB_sub
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.