共用方式為


HOW TO:定義程序的參數 (Visual Basic)

「參數」(Parameter) 允許呼叫程式碼在呼叫程序時將值傳遞給該程序。 您可以利用指定參數名稱與資料型別,為程序宣告每一個參數,就像宣告一般變數的方式一樣。 而且,您也可以指定傳遞的機制,以及該參數是否為選擇性 (Optional)。

如需詳細資訊,請參閱程序參數和引數 (Visual Basic)

若要定義程序參數

  1. 在程序宣告中,將參數名稱加入至程序參數清單 (用逗號隔開每個參數)。

  2. 決定參數的資料型別。

  3. 在參數名稱後面緊接著 As 子句,以指定資料型別。

  4. 決定要用於參數的傳遞機制。 一般而言,除非想讓程序可變更它在呼叫程式碼中的值,否則會以傳值 (By Value) 方式傳遞參數。

  5. 在參數名稱前面加上 ByVal (Visual Basic)ByRef (Visual Basic),以指定傳遞機制。 如需詳細資訊,請參閱以傳值或傳址方式傳遞引數的差別 (Visual Basic)

  6. 如果是選擇性參數,請在傳遞機制前面加上 Optional (Visual Basic),且在參數資料型別後面緊接著等號 (=) 和預設值。

    下列範例會定義含有三個參數之 Sub 程序的大綱。 前兩個是必要項,而第三個是選擇項。 參數清單中的參數宣告是用逗號隔開。

    Sub updateCustomer(ByRef c As customer, ByVal region As String, 
      Optional ByVal level As Integer = 0)
      ' Insert code to update a customer object.
    End Sub
    

    第一個參數會接受 (Accept) customer 物件,而 updateCustomer 可直接更新傳遞給 c 的變數,因為引數是以 ByRef (Visual Basic) 方式傳遞。 程序無法變更後兩個引數的值,因為它們是以 ByVal (Visual Basic) 方式傳遞。

    如果呼叫程式碼未提供 level 參數的值,則 Visual Basic 會將它設為預設值 0。

    如果型別檢查 (Type Checking) 參數 (Option Strict 陳述式) 為 Off,則在定義參數時,As 子句為選擇性的。 然而,如果任一參數會使用 As 子句,則所有參數就必須使用它。 如果型別檢查參數是 On,則每個參數定義都要有 As 子句。

    指定所有程式項目的資料型別稱為「強式型別」(Strong Typing)。 設定 Option Strict On 時,Visual Basic 會強制使用強式型別。 因為下列理由,所以強烈建議您這麼做:

    • 讓 IntelliSense 能夠支援變數和參數。 這能讓您在輸入程式碼時看到其屬性和其他成員。

    • 讓編譯器能夠執行型別檢查。 這有助於找出因為錯誤 (例如溢位) 而導致執行階段發生失敗的陳述式。 這也能夠偵測在不支援變數的物件上所進行的方法呼叫。

    • 執行程式碼的速度較快。 其中一個理由是,如果未指定程式設計項目的資料型別,則 Visual Basic 編譯器會將它指派為 Object 型別。 編譯的程式碼可能必須在 Object 與其他資料型別之間進行來回轉換,因而會降低效能。

請參閱

工作

HOW TO:將引數傳遞至程序 (Visual Basic)

概念

Visual Basic 中的程序

Sub 程序 (Visual Basic)

Function 程序 (Visual Basic)

以傳值和傳址方式傳遞引數 (Visual Basic)

遞迴程序 (Visual Basic)

程序多載化 (Visual Basic)

物件導向程式設計 (C# 與 Visual Basic)

其他資源

Visual Basic 中的物件和類別