Aracılığıyla paylaş


İsteğe Bağlı Parametreler (Visual Basic)

Bir yordam parametresinin isteğe bağlı olduğunu ve yordam çağrıldığında bu parametre için hiçbir bağımsız değişken sağlanmaması gerektiğini belirtebilirsiniz. İsteğe bağlı parametreler , yordam tanımındaki Optional anahtar sözcükle gösterilir. Geçerli olan kurallar şunlardır:

  • Yordam tanımındaki her isteğe bağlı parametre bir varsayılan değer belirtmelidir.

  • İsteğe bağlı parametreye ilişkin varsayılan değer bir sabit ifade olmalıdır.

  • Yordam tanımında isteğe bağlı parametreden sonra gelen her parametre de isteğe bağlı olmalıdır.

Aşağıdaki sözdiziminde, isteğe bağlı parametresi bulunan bir yordam bildirimi gösterilmektedir:

Sub name(ByVal parameter1 As datatype1, Optional ByVal parameter2 As datatype2 = defaultvalue)  

İsteğe Bağlı Parametreler İçeren Yordamları Çağırma

İsteğe bağlı parametre içeren bir yordamı çağırdığınızda, bağımsız değişkeni sağlayıp sağlamamayı seçebilirsiniz. Bunu yapmazsanız, yordam bu parametre için bildirilen varsayılan değeri kullanır.

Bağımsız değişken listesinde bir veya daha fazla isteğe bağlı bağımsız değişkeni atladığınızda, bunların konumlarını işaretlemek için ardışık virgüller kullanırsınız. Aşağıdaki örnek çağrı birinci ve dördüncü bağımsız değişkeni sağlamakta, ancak ikinci veya üçüncüyü sağlamamaktadır:

Sub name(argument 1, , , argument 4)  

Aşağıdaki örnek işleve MsgBox birkaç çağrı yapar. MsgBox bir gerekli parametreye ve iki isteğe bağlı parametreye sahiptir.

İlk çağrısı MsgBox , üç bağımsız değişkeni de bunları tanımlayan sırayla MsgBox sağlar. İkinci çağrı yalnızca gerekli bağımsız değişkeni sağlar. Üçüncü ve dördüncü çağrılar, birinci ve üçüncü bağımsız değişkenleri sağlar. Üçüncü çağrı bunu konuma göre ve dördüncü çağrı ise ada göre yapar.

MsgBox("Important message", MsgBoxStyle.Critical, "MsgBox Example")
MsgBox("Just display this message.")
MsgBox("Test message", , "Title bar text")
MsgBox(Title:="Title bar text", Prompt:="Test message")

İsteğe Bağlı Bağımsız Değişkenin Var Olup Olmadığını Belirleme

Bir yordam, verilen bir bağımsız değişkenin atlanıp atlanmadığını veya çağırma kodunun varsayılan değeri açıkça sağlayıp sağlamadığını çalışma zamanında algılayamaz. Bu ayrımı yapmanız gerekiyorsa, olasılık dışı bir değeri varsayılan olarak ayarlayabilirsiniz. Aşağıdaki yordam isteğe bağlı parametresini officetanımlar ve çağrısında atlanıp atlanmadığını görmek için varsayılan değeri QJZolan öğesini test eder:

Sub notify(ByVal company As String, Optional ByVal office As String = "QJZ")
    If office = "QJZ" Then
        Debug.WriteLine("office not supplied -- using Headquarters")
        office = "Headquarters"
    End If
    ' Insert code to notify headquarters or specified office.
End Sub

İsteğe bağlı parametre gibi Stringbir başvuru türüyse, bağımsız değişken için beklenen bir değer olmaması koşuluyla varsayılan değer olarak kullanabilirsiniz Nothing .

İsteğe Bağlı Parametreler ve Aşırı Yükleme

İsteğe bağlı parametreler içeren bir yordam tanımlamanın bir başka yolu aşırı yüklemeyi kullanmaktır. İsteğe bağlı tek bir parametreniz varsa, prosedürün iki aşırı yüklenmiş sürümünü (biri parametreyi kabul eden, diğeri ise parametresiz olmak üzere) tanımlayabilirsiniz. Bu yaklaşım, isteğe bağlı parametrelerin sayısı arttıkça daha karmaşık hale gelir. Ancak avantajı, çağırma programının her bir isteğe bağlı bağımsız değişkeni sağlayıp sağlamadığından kesin emin olabilmenizdir.

Ayrıca bkz.