參數清單 (Visual Basic)

指定呼叫程序時預期的參數。 多個參數之間必須使用逗號分隔。 以下是一個參數的語法。

語法

[ <attributelist> ] [ Optional ] [{ ByVal | ByRef }] [ ParamArray ]
parametername[( )] [ As parametertype ] [ = defaultvalue ]

組件

attributelist
選擇性。 套用至此參數的屬性清單。 您必須將屬性清單放在角括號中 ("<" 和 ">")。

Optional
選擇性。 指定呼叫程序時不需要此參數。

ByVal
選擇性。 指定程序無法取代或重新指派呼叫程式碼中相應引數底下的變數元素。

ByRef
選擇性。 指定程序可以修改呼叫程式碼中的基礎變數元素,方式與呼叫程式碼本身相同。

ParamArray
選擇性。 指定參數清單中的最後一個參數是指定資料類型的選擇性元素陣列。 這可讓呼叫程式碼將任意數目的引數傳遞至程序。

parametername
必要。 代表參數的區域變數名稱。

parametertype
如果 Option StrictOn,則為必要項。 代表參數之區域變數的資料類型。

defaultvalue
Optional 參數所需。 評估為參數資料類型的任何常數或常數運算式。 如果型別為 Object,或類別、介面、陣列或結構,預設值只能為 Nothing

備註

參數會以括弧括住,並以逗號分隔。 參數可以使用任何資料類型來宣告。 如果您未指定 parametertype,預設為 Object

呼叫程式碼呼叫程序時,它會將「引數」傳遞至每個必要參數。 如需詳細資訊,請參閱參數與引數之間的差異 (機器翻譯)

呼叫程式碼傳遞至每個參數的引數是呼叫程式碼中基礎元素的指標。 如果此元素「非變數」(常數、常值、列舉或運算式),任何程式碼都無法加以變更。 如果為「變數」元素 (宣告的變數、欄位、屬性、陣列元素或結構元素),則呼叫程式碼可加以變更。 如需詳細資訊,請參閱可修改引數和不可修改引數之間的差異 (機器翻譯)

如果以 ByRef 傳遞變數元素,程序也可加以變更。 如需詳細資訊,請參閱 以傳值與藉傳址方式傳遞引數的差別 (機器翻譯)

規則

  • 括弧。 如果您指定參數清單,必須以括弧括住。 如果沒有參數,您仍然可以使用括弧括住空白清單。 這可藉由釐清元素是程序,改善程式碼的可讀性。

  • 選擇性參數。 如果您在參數上使用 Optional 修飾元,清單中的所有後續參數也必須為選擇性,且必須使用 Optional 修飾元宣告。

    每個選擇性參數宣告都必須提供 defaultvalue 子句。

    如需詳細資訊,請參閱選擇性參數 (機器翻譯)

  • 參數陣列。 您必須為 ParamArray 參數指定 ByVal

    您無法在相同的參數清單中同時使用 OptionalParamArray

    如需詳細資訊,請參閱參數陣列 (機器翻譯)

  • 傳遞機制。 每個引數的預設機制為 ByVal,這表示程序無法變更基礎變數元素。 不過,如果元素是參考型別,程序可以修改基礎物件的內容或成員,即使無法取代或重新指派物件本身也一樣。

  • 參數名稱。 如果參數的資料類型是陣列,請在 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?")

另請參閱