參數陣列 (Visual Basic)
通常,您無法以多於程序宣告指定的引數呼叫一個程序。 當您需要不確定數目的引數時,可以宣告「參數陣列」(Parameter Array),讓程序能接受參數的陣列值。 當您定義該程序時,並不需要知道該參數陣列中項目的數目。 陣列的大小取決於程序的每一個呼叫。
宣告 ParamArray
您可使用 ParamArray (Visual Basic) 關鍵字,來代表參數清單中的參數陣列。 可套用下列規則:
一個程序只能定義一個參數陣列,它必須是程序定義中的最後一個參數。
參數陣列必須以傳值的方式傳遞。 明確地將 ByVal (Visual Basic) 關鍵字包括在程序定義中是良好的程式設計方式。
參數陣列自動成為選擇性的。 它的預設值是參數陣列的元素型別之空白一維陣列。
參數陣列之前的所有參數必須是必要的。 參數陣列必須是唯一的選擇性參數。
如需詳細資訊,請參閱 HOW TO:定義使用不定數目參數的程序 (Visual Basic)。
呼叫 ParamArray
呼叫定義參數陣列的程序時,可利用下列任一方式提供引數:
Nothing:也就是可省略 ParamArray (Visual Basic) 引數。 在這個情況下,會傳遞空的陣列到程序中。 您也可以傳遞 Nothing (Visual Basic) 關鍵字,效果是一樣的。
任意數目的引數清單,由逗號分隔。 每一個引數的資料型別必須可以隱含轉換為 ParamArray 項目型別。
元素型別與參數陣列之元素型別相同的陣列。
在所有的情況下,程序內的程式碼必須將參數陣列視為一維陣列,且其元素的資料型別會與 ParamArray 資料型別相同。
如需詳細資訊,請參閱 HOW TO:呼叫使用不定數目參數的程序 (Visual Basic)。
安全性注意事項 |
---|
只要處理可能是無限大的陣列,就會有導致應用程式內部容量滿溢的風險。 如果接受參數陣列,則您應該測試呼叫程式碼傳給它的陣列大小。 若對應用程式而言太大,請執行適當的步驟。 如需詳細資訊,請參閱 Visual Basic 中的陣列。 |
範例
說明
下列範例會定義並呼叫 calcSum 函式。 參數 args 的 ParamArray 修飾詞可以讓函式接受引數的變數數字。
程式碼
Module Module1
Sub Main()
' In the following function call, calcSum's local variables
' are assigned the following values: args(0) = 4, args(1) = 3,
' and so on. The displayed sum is 10.
Dim returnedValue As Double = calcSum(4, 3, 2, 1)
Console.WriteLine("Sum: " & returnedValue)
' Parameter args accepts zero or more arguments. The sum
' displayed by the following statements is 0.
returnedValue = calcSum()
Console.WriteLine("Sum: " & returnedValue)
End Sub
Public Function calcSum(ByVal ParamArray args() As Double) As Double
calcSum = 0
If args.Length <= 0 Then Exit Function
For i As Integer = 0 To UBound(args, 1)
calcSum += args(i)
Next i
End Function
End Module