HOW TO:定義程序的參數
更新:2007 年 11 月
「參數」允許呼叫程式碼在呼叫程序時將值傳遞給該程序。您可以利用指定參數名稱與資料型別,為程序宣告每一個參數,就像宣告一般變數的方式一樣。而且,您也可以指定傳遞的機制,以及該參數是否為選擇性 (Optional)。
如需詳細資訊,請參閱程序參數和引數。
若要定義程序參數
在程序宣告中,將參數名稱加入至程序參數清單 (用逗號隔開每個參數)。
決定參數的資料型別。
在參數名稱後面緊接著 As 子句,以指定資料型別。
決定要用於參數的傳遞機制。一般而言,除非想讓程序可變更它在呼叫程式碼中的值,否則會以傳值 (By Value) 方式傳遞參數。
在參數名稱前面加上 ByVal 或 ByRef,以指定傳遞機制。如需詳細資訊,請參閱以傳值或傳址方式傳遞引數的差別。
如果是選擇性參數,請在傳遞機制前面加上 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 方式傳遞。程序無法變更後兩個引數的值,因為它們是以 ByVal 方式傳遞。
如果呼叫程式碼未提供 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 與其他資料型別之間進行來回轉換,因而會降低效能。