İsteğe Bağlı (Visual Basic)
Yordam çağrıldığında bir yordam bağımsız değişkeninin atlanabileceğini belirtir.
Açıklamalar
Her isteğe bağlı parametre için, bu parametrenin varsayılan değeri olarak bir sabit ifade belirtmeniz gerekir. İfade Nothingolarak değerlendirilirse, değer veri türünün varsayılan değeri parametrenin varsayılan değeri olarak kullanılır.
Parametre listesi isteğe bağlı bir parametre içeriyorsa, izleyen her parametrenin de isteğe bağlı olması gerekir.
OptionalDeğiştirici şu bağlamlarda kullanılabilir:
Not
İsteğe bağlı parametreleri olan veya içermeyen bir yordamı çağırırken bağımsız değişkenleri konuma veya ada göre geçirebilirsiniz. Daha fazla bilgi için bkz. bağımsız değişkenleri konuma ve ada göre geçirme.
Not
Ayrıca, aşırı yükleme kullanarak isteğe bağlı parametrelerle bir yordam tanımlayabilirsiniz. İsteğe bağlı bir parametreye sahipseniz, yordamın parametresini kabul eden bir tane olan biri olan iki aşırı yüklenmiş sürümü tanımlayabilirsiniz. Daha fazla bilgi için bkz. yordam aşırı yüklemesi.
Örnek 1
Aşağıdaki örnek, isteğe bağlı parametresine sahip bir yordamı tanımlar.
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
Örnek 2
Aşağıdaki örnek, konumundan geçirilen bağımsız değişkenlerle ve ad ile geçirilen bağımsız değişkenlerle bir yordamın nasıl çağrılacağını gösterir. Yordamda iki isteğe bağlı parametre vardır.
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