Nasıl yapılır: İsteğe Bağlı Parametreler İsteyen Bir Yordamı Aşırı Yükleme (Visual Basic)
Bir yordamda bir veya daha fazla İsteğe bağlı parametre varsa, örtük aşırı yüklemelerinden herhangi biriyle eşleşen aşırı yüklenmiş bir sürüm tanımlayamazsınız. Daha fazla bilgi için, Aşırı Yükleme Yordamlarındaki Önemli Noktalar bölümünde yer alan "İsteğe Bağlı Parametreler için Örtük Aşırı Yüklemeler" bölümüne bakın.
İsteğe Bağlı Bir Parametre
İsteğe bağlı bir parametre alan bir yordamı aşırı yüklemek için
Parametre listesinde isteğe bağlı parametresini içeren bir
Sub
veyaFunction
bildirim deyimi yazın. Bu aşırı yüklenmiş sürümde anahtar sözcüğünüOptional
kullanmayın.or anahtar sözcüğünden
Sub
önce Overloads anahtar sözcüğünü ekleyin.Function
Çağıran kod isteğe bağlı bağımsız değişken sağladığında yürütülmesi gereken yordam kodunu yazın.
Yordamı uygun şekilde veya
End Function
deyimiyleEnd Sub
sonlandırın.parametre listesinde isteğe bağlı parametresini içermemesi dışında ilk bildirimle aynı olan ikinci bir bildirim deyimi yazın.
Çağıran kod isteğe bağlı bağımsız değişkeni sağlamadığında yürütülmesi gereken yordam kodunu yazın. Yordamı uygun şekilde veya
End Function
deyimiyleEnd Sub
sonlandırın.Aşağıdaki örnekte isteğe bağlı bir parametreyle tanımlanan bir yordam, iki aşırı yüklenmiş yordamdan oluşan eşdeğer bir küme ve son olarak hem geçersiz hem de geçerli aşırı yüklenmiş sürümlerin örnekleri gösterilmektedir.
Sub q(ByVal b As Byte, Optional ByVal j As Long = 6)
' The preceding definition is equivalent to the following two overloads. ' Overloads Sub q(ByVal b As Byte) ' Overloads Sub q(ByVal b As Byte, ByVal j As Long)
' Therefore, the following overload is not valid because the signature is already in use. ' Overloads Sub q(ByVal c As Byte, ByVal k As Long) ' The following overload uses a different signature and is valid. Overloads Sub q(ByVal b As Byte, ByVal j As Long, ByVal s As Single)
Birden Çok İsteğe Bağlı Parametre
Birden fazla isteğe bağlı parametreye sahip bir yordam için normalde ikiden fazla aşırı yüklenmiş sürüme ihtiyacınız vardır. Örneğin, isteğe bağlı iki parametre varsa ve çağıran kod her birini birbirinden bağımsız olarak sağlayabilir veya atlayabilirse, sağlanan bağımsız değişkenlerin her olası bileşimi için bir tane olan dört aşırı yüklenmiş sürüme ihtiyacınız vardır.
İsteğe bağlı parametrelerin sayısı arttıkça aşırı yüklemenin karmaşıklığı artar. Sağlanan bağımsız değişkenlerin bazı birleşimleri kabul edilemez değilse, N isteğe bağlı parametreler için 2 ^ N aşırı yüklenmiş sürüme ihtiyacınız vardır. Yordamın yapısına bağlı olarak, mantığın netliğini aşırı yüklenmiş tüm sürümleri tanımlamaya yönelik ek çabayı haklı çıkardığını fark edebilirsiniz.
Birden fazla isteğe bağlı parametre alan bir yordamı aşırı yüklemek için
Sağlanan isteğe bağlı bağımsız değişkenlerin hangi birleşimlerinin yordamın mantığı için kabul edilebilir olduğunu belirleyin. İsteğe bağlı bir parametre başka bir parametreye bağlıysa kabul edilemez bir birleşim ortaya çıkabilir. Örneğin, bir parametre bir kişinin adını kabul ederse ve başka bir parametre kişinin yaşını kabul ederse, yaşı sağlayan ancak adı atlayan bağımsız değişkenlerin bir bileşimi kabul edilemez.
Sağlanan isteğe bağlı bağımsız değişkenlerin kabul edilebilir her birleşimi için, karşılık gelen parametre listesini tanımlayan bir
Sub
veyaFunction
bildirim deyimi yazın. anahtar sözcüğünüOptional
kullanmayın.Her bildirimde or
Function
anahtar sözcüğündenSub
önce Overloads anahtar sözcüğünü yazın.Her bildirimin ardından, çağıran kod bu bildirimin parametre listesine karşılık gelen bir bağımsız değişken listesi sağladığında yürütülmesi gereken yordam kodunu yazın.
Her yordamı uygun şekilde veya
End Function
deyimiyleEnd Sub
sonlandırın.
Ayrıca bkz.
- Yordamlar
- Yordam Parametreleri ve Bağımsız Değişkenleri
- İsteğe Bağlı Parametreler
- Parametre Dizileri
- Yordam Aşırı Yüklemesi
- Yordam Sorunlarını Giderme
- Nasıl yapılır: Bir Yordamın Birden Fazla Sürümünü Tanımlama
- Nasıl yapılır: Aşırı Yüklenmiş Bir Yordamı Çağırma
- Nasıl yapılır: Belirsiz Sayıda Parametre İsteyen Bir Yordamı Aşırı Yükleme
- Aşırı Yükleme Çözümü