Array Parameter (Visual Basic)
Biasanya, Anda tidak dapat memanggil prosedur dengan lebih banyak argumen daripada yang ditentukan deklarasi prosedur. 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 Anda 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 ini akan berlaku:
Prosedur hanya dapat menentukan satu array parameter, dan harus berupa parameter terakhir dalam penentuan prosedur.
Array parameter harus diteruskan menurut nilai. Merupakan praktik pemrograman yang baik untuk secara eksplisit menyertakan kata kunci ByVal dalam penentuan prosedur.
Array parameter secara otomatis opsional. Nilai defaultnya adalah array satu dimensi kosong dari jenis elemen array parameter.
Semua parameter yang mendahului array parameter harus diperlukan. 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 jumlah argumen arbitrer, dipisahkan oleh koma. Jenis data dari setiap argumen harus secara implisit dapat dikonversi ke jenis elemen
ParamArray
.Array dengan jenis elemen yang sama dengan jenis elemen array parameter.
Dalam semua kasus, kode dalam prosedur memperlakukan array parameter sebagai array satu dimensi dengan elemen jenis data yang sama dengan jenis data ParamArray
.
Penting
Setiap kali Anda menghadapi array yang dapat sangat besar, ada risiko menjalankan kapasitas internal aplikasi Anda secara berlebihan. Jika Anda menerima array parameter, Anda harus menguji ukuran array yang diteruskan kode panggilan kepadanya. 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)
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk