參數清單
更新:2007 年 11 月
指定呼叫程序時所預期的參數。參數之間以逗號來分隔。下列是其中一個參數的語法。
[ <attributelist> ] [ Optional ] [{ ByVal | ByRef }] [ ParamArray ]
parametername[( )] [ As parametertype ] [ = defaultvalue ]
參數
attributelist
選擇項,套用至這個參數的屬性 (Attribute) 清單。您必須將屬性清單置於角括弧中 ("<" 和 ">")。Optional
選擇項,指定呼叫程序時不需要這個參數。ByVal
選擇項,指定程序不可以在呼叫程式碼中取代或重新指派引數所對應的變數項目。ByRef
選擇項,指定程序可以透過呼叫程式碼本身進行修改的相同方式,修改對應的變數項目。ParamArray
選擇項。指定參數清單中的最後一個參數是指定資料型別的選擇性項目陣列。這可讓呼叫程式碼將任意數目的引數傳遞至程序。parametername
必要項。表示參數的區域變數名稱。parametertype
如果 Option Strict 為 On,則為必要項。代表參數之區域變數的資料型別。defaultvalue
對 Optional 參數而言為必要項。任何評估為參數資料型別的常數或常數運算式。若型別為 Object 或是類別、介面、陣列或結構,則預設值只能是 Nothing。
備註
參數是以括號括住且以逗號隔開。參數可宣告為任何資料型別。若未指定 parametertype,則會預設值為 Object。
在呼叫程式碼呼叫程序時,會將「引數」傳遞給每個必要參數。如需詳細資訊,請參閱參數和引數之間的差異。
呼叫程式碼傳遞給每個參數的引數,就是呼叫程式碼中對應項目的指標。如果這個項目為「非變換」(Nonvariable) (常數、常值、列舉型別或運算式),則任何程式碼都無法予以變更。如果它是「變數」項目 (宣告的變數、欄位、屬性、陣列項目或結構項目),則呼叫程式碼可予以變更。如需詳細資訊,請參閱可修改引數和不可修改引數之間的差異。
如果變數項目是以 ByRef 方式傳遞,則程序也可變更它。如需詳細資訊,請參閱以傳值或傳址方式傳遞引數的差別。
規則
括弧:如果您指定參數清單,則必須將它封入括號中。如果沒有參數,您仍可使用封入空白清單的括號。透過釐清該項目為程序,藉以提升程式碼的可讀性。
選擇性參數:如果在參數上使用 Optional 修飾詞 (Modifier),則清單中的所有後續參數也必須為選擇項,且必須使用 Optional 修飾詞進行宣告。
每個選擇性參數宣告都必須提供 defaultvalue 子句。
參數陣列:您必須對 ParamArray 參數指定 ByVal。
您不能在同一個參數清單中同時使用 Optional 和 ParamArray。
傳遞機制:每個引數的預設機制都是 ByVal,這表示程序不可變更對應的變數項目。不過,如果項目是參考型別 (Reference Type),即使程序無法取代或指派對應的物件本身,仍可修改對應物件的內容或成員。
參數名稱:如果參數資料型別是陣列,請在 parametername 後面緊接著括號。如需參數名稱的詳細資訊,請參閱宣告項目名稱。
範例
下列範例顯示了定義兩個參數的 Function 程序。
Public Function howMany(ByVal ch As Char, ByVal st As String) As Integer
End Function
Dim howManyA As Integer = howMany("a"c, "How many a's in this string?")