Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Biasanya, Anda tidak dapat memanggil prosedur dengan lebih banyak argumen daripada deklarasi prosedur yang ditentukan. Saat Anda memerlukan jumlah argumen yang tidak terbatas, Anda dapat mendeklarasikan array parameter, yang memungkinkan prosedur untuk menerima array nilai untuk parameter. Anda tidak perlu mengetahui jumlah elemen dalam array parameter saat Menentukan prosedur. Ukuran array ditentukan secara individual oleh setiap panggilan ke prosedur.
Mendeklarasikan ParamArray
Anda menggunakan kata kunci ParamArray untuk menunjukkan array parameter dalam daftar parameter. Aturan berikut berlaku:
Prosedur hanya dapat menentukan satu array parameter, dan harus menjadi parameter terakhir dalam definisi prosedur.
Parameter array harus diteruskan nilainya. Adalah praktik pemrograman yang baik untuk secara eksplisit menyertakan kata kunci ByVal dalam definisi prosedur.
Array parameter merupakan opsional secara otomatis. Nilai defaultnya adalah array satu dimensi kosong dari tipe elemen pada array parameter.
Semua parameter yang mendahului parameter array harus wajib. Array parameter harus menjadi satu-satunya parameter opsional.
Memanggil ParamArray
Saat Anda memanggil prosedur yang menentukan array parameter, Anda dapat menyediakan argumen dengan salah satu cara berikut:
Tidak ada — artinya, Anda dapat menghilangkan argumen ParamArray . Dalam hal ini, array kosong diteruskan ke prosedur. Jika Anda secara eksplisit meneruskan kata kunci Tidak Ada , array null diteruskan ke prosedur dan dapat mengakibatkan NullReferenceException jika prosedur yang dipanggil tidak memeriksa kondisi ini.
Daftar sejumlah argumen yang tidak tetap, dipisahkan oleh koma. Jenis data dari setiap argumen harus secara implisit dapat dikonversi ke
ParamArrayjenis elemen.Array yang memiliki jenis elemen yang sama dengan jenis elemen dari array parameter.
Dalam semua kasus, kode dalam prosedur memperlakukan array parameter sebagai array dimensi satu dengan elemen yang memiliki jenis data yang sama dengan jenis data ParamArray.
Penting
Setiap kali Anda berurusan dengan array yang bisa sangat besar, ada risiko melebihi kapasitas internal aplikasi Anda. Jika Anda menerima array parameter, Anda harus menguji ukuran array yang diteruskan kode panggilan ke dalamnya. Ambil langkah-langkah yang tepat jika terlalu besar untuk aplikasi Anda. Untuk informasi selengkapnya, lihat Array.
Contoh
Contoh berikut menentukan dan memanggil fungsi calcSum. Pengubah ParamArray untuk parameter args memungkinkan fungsi untuk menerima jumlah variabel argumen.
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
Contoh berikut menentukan prosedur dengan array parameter, dan menghasilkan nilai semua elemen array yang diteruskan ke array parameter.
Sub studentScores(ByVal name As String, ByVal ParamArray scores() As String)
Debug.WriteLine("Scores for " & name & ":" & vbCrLf)
' Use UBound to determine largest subscript of the array.
For i As Integer = 0 To UBound(scores, 1)
Debug.WriteLine("Score " & i & ": " & scores(i))
Next i
End Sub
Call studentScores("Anne", "10", "26", "32", "15", "22", "24", "16")
Call studentScores("Mary", "High", "Low", "Average", "High")
Dim JohnScores() As String = {"35", "Absent", "21", "30"}
Call studentScores("John", JohnScores)