Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Yordam parametresinin isteğe bağlı olduğunu ve yordam çağrıldığında bu parametre için bağımsız değişken sağlanması gerekmemesi gerektiğini belirtebilirsiniz.
İsteğe bağlı parametreler , yordam tanımındaki Optional anahtar sözcükle gösterilir. Aşağıdaki kurallar geçerlidir:
Yordam tanımındaki isteğe bağlı her parametre bir varsayılan değer belirtmelidir.
İsteğe bağlı parametrenin varsayılan değeri sabit bir ifade olmalıdır.
Yordam tanımında isteğe bağlı bir parametreyi izleyen her parametre de isteğe bağlı olmalıdır.
Aşağıdaki söz diziminde isteğe bağlı parametre içeren bir yordam bildirimi gösterilmektedir:
Sub name(ByVal parameter1 As datatype1, Optional ByVal parameter2 As datatype2 = defaultvalue)
İsteğe Bağlı Parametrelerle Prosedürleri Çağırma
İsteğe bağlı bir parametreye sahip bir yordam çağırdığınızda, bağımsız değişkenin sağlanıp sağlanmayacağını seçebilirsiniz. Bunu yapmazsanız, yordam bu parametre için bildirilen varsayılan değeri kullanır.
Bağımsız değişken listesindeki bir veya daha fazla isteğe bağlı bağımsız değişkeni atladığınızda, konumlarını işaretlemek için ardışık virgül kullanırsınız. Aşağıdaki örnek çağrı birinci ve dördüncü bağımsız değişkenleri sağlar, ancak ikinci veya üçüncü bağımsız değişkenleri sağlamaz.
Sub name(argument 1, , , argument 4)
Aşağıdaki örnekte MsgBox işlevine birkaç kez çağrı yapılmaktadır.
MsgBox bir gerekli parametreye ve iki isteğe bağlı parametreye sahiptir.
İlk çağrı MsgBox'a, üç bağımsız değişkeni, MsgBox'e tanımlandığı sırayla 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 yapar, dördüncü çağrı ise adıyla 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ı Argümanın Mevcut Olup Olmadığını Belirleme
Bir yordam, belirli bir bağımsız değişkenin atlanıp atlandığını veya çağıran kodun açıkça varsayılan değeri sağlayıp belirtmediğini çalışma zamanında algılayamaz. Bu ayrımı yapmanız gerekiyorsa, olası olmayan bir değeri varsayılan olarak ayarlayabilirsiniz. Aşağıdaki yordam, isteğe bağlı parametre office'yi tanımlar ve çağrıda atlanıp atlanmadığını kontrol etmek için varsayılan değeri QJZ'i 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 String gibi bir başvuru türü ise, bu bağımsız değişken için beklenen bir değer değilse varsayılan değer olarak Nothing kullanabilirsiniz.
İsteğe Bağlı Parametreler ve Aşırı Yükleme
İsteğe bağlı parametrelerle bir yordam tanımlamanın bir diğer yolu da aşırı yükleme kullanmaktır. İsteğe bağlı bir parametreniz varsa, biri parametreyi kabul eden, diğeri de parametresiz olmak üzere yordamın iki aşırı yüklenmiş sürümünü tanımlayabilirsiniz. İsteğe bağlı parametre sayısı arttıkça bu yaklaşım daha karmaşık hale gelir. Ancak bunun avantajı, çağıran programın isteğe bağlı bağımsız değişkenleri sağlayıp sağlamadığını kesinlikle emin olmanızdır.