Bagikan melalui


Opsional (Visual Basic)

Menentukan bahwa argumen prosedur dapat dihilangkan saat prosedur dipanggil.

Komentar

Untuk setiap parameter opsional, Anda harus menentukan ekspresi konstanta sebagai nilai default parameter tersebut. Jika ekspresi mengevaluasi ke Tidak Ada, nilai default jenis data nilai digunakan sebagai nilai default parameter.

Jika daftar parameter berisi parameter opsional, setiap parameter yang mengikutinya juga harus opsional.

Pengubah Optional dapat digunakan dalam konteks ini:

Nota

Saat memanggil prosedur dengan atau tanpa parameter opsional, Anda dapat meneruskan argumen berdasarkan posisi atau berdasarkan nama. Untuk informasi selengkapnya, lihat Meneruskan Argumen menurut Posisi dan berdasarkan Nama.

Nota

Anda juga dapat menentukan prosedur dengan parameter opsional dengan menggunakan kelebihan beban. Jika Anda memiliki satu parameter opsional, Anda dapat menentukan dua versi prosedur yang kelebihan beban, satu yang menerima parameter dan yang tidak. Untuk informasi selengkapnya, lihat Kelebihan Muatan Prosedur.

Contoh 1

Contoh berikut mendefinisikan prosedur yang memiliki parameter opsional.

Public Function FindMatches(ByRef values As List(Of String),
                            ByVal searchString As String,
                            Optional ByVal matchCase As Boolean = False) As List(Of String)

    Dim results As IEnumerable(Of String)

    If matchCase Then
        results = From v In values
                  Where v.Contains(searchString)
    Else
        results = From v In values
                  Where UCase(v).Contains(UCase(searchString))
    End If

    Return results.ToList()
End Function

Contoh 2

Contoh berikut menunjukkan cara memanggil prosedur dengan argumen yang diteruskan oleh posisi dan dengan argumen yang diteruskan oleh nama. Prosedur ini memiliki dua parameter opsional.

Private Sub TestParameters()
    ' Call the procedure with its arguments passed by position,
    studentInfo("Mary", 19, #9/21/1981#)

    ' Omit one optional argument by holding its place with a comma.
    studentInfo("Mary", , #9/21/1981#)

    ' Call the procedure with its arguments passed by name.
    studentInfo(age:=19, birth:=#9/21/1981#, name:="Mary")

    ' Supply an argument by position and an argument by name.
    studentInfo("Mary", birth:=#9/21/1981#)
End Sub

Private Sub studentInfo(ByVal name As String,
   Optional ByVal age As Short = 0,
   Optional ByVal birth As Date = #1/1/2000#)

    Console.WriteLine("name: " & name)
    Console.WriteLine("age: " & age)
    Console.WriteLine("birth date: " & birth)
    Console.WriteLine()
End Sub

Lihat juga