Nasıl yapılır: Belirsiz Sayıda Parametre İsteyen Bir Yordamı Aşırı Yükleme (Visual Basic)
Bir yordamın ParamArray parametresi varsa, parametre dizisi için tek boyutlu bir dizi alan 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 "ParamArray Parametresi için Örtük Aşırı Yüklemeler" bölümüne bakın.
Değişken sayıda parametre alan bir yordamı aşırı yüklemek için
Yordamın ve çağrı kodu mantığının aşırı yüklenmiş sürümlerden bir
ParamArray
parametreden daha fazla yararlandığını doğrulayın. Aşırı Yükleme Yordamlarında Dikkat Edilmesi Gerekenler bölümünde "Aşırı Yüklemeler ve ParamArrays" bölümüne bakın.Parametre listesinin değişken bölümünde yordamın hangi sayıda sağlanan değeri kabul etmesi gerektiğini belirleyin. Bu, değer içermeyen bir olayı içerebilir ve tek boyutlu tek boyutlu bir diziyi içerebilir.
Sağlanan her kabul edilebilir değer sayısı için, karşılık gelen parametre listesini tanımlayan bir
Sub
veyaFunction
bildirim deyimi yazın. Bu aşırı yüklenmiş sürümde veya anahtar sözcüğünüParamArray
kullanmayınOptional
.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 değerleri sağladığında yürütülmesi gereken yordam kodunu yazın.
Her yordamı uygun şekilde veya
End Function
deyimiyleEnd Sub
sonlandırın.
Örnek
Aşağıdaki örnekte ParamArray parametresiyle tanımlanan bir yordam ve ardından eşdeğer bir aşırı yüklenmiş yordam kümesi gösterilmektedir.
Sub p(ByVal d As Date, ByVal ParamArray c() As Char)
' The preceding definition is equivalent to the following overloads.
' Overloads Sub p(ByVal d As Date)
' Overloads Sub p(ByVal d As Date, ByVal c() As Char)
' Overloads Sub p(ByVal d As Date, ByVal c1 As Char)
' Overloads Sub p(ByVal d As Date, ByVal c1 As Char, ByVal c2 As Char)
' And so on, with an additional Char argument in each successive overload.
Böyle bir yordamı, parametre dizisi için tek boyutlu bir dizi alan bir parametre listesiyle aşırı yükleyemezsiniz. Ancak, diğer örtük aşırı yüklemelerin imzalarını kullanabilirsiniz. Aşağıdaki bildirimler bunu gösterir.
' The following overload is not valid because it takes an array for the parameter array.
' Overloads Sub p(ByVal x As Date, ByVal y() As Char)
' The following overload takes a single value for the parameter array and is valid.
Overloads Sub p(ByVal z As Date, ByVal w As Char)
Aşırı yüklenmiş sürümlerdeki kodun, çağıran kodun parametre için ParamArray
bir veya daha fazla değer sağlayıp sağlamadığını veya varsa kaç tane olduğunu test etmek zorunda değildir. Visual Basic, denetimi çağıran bağımsız değişken listesiyle eşleşen sürüme geçirir.
Kodu derleme
Parametresi olan bir ParamArray
yordam, aşırı yüklenmiş bir sürüm kümesine eşdeğer olduğundan, bu tür bir yordamı bu örtük aşırı yüklemelerden herhangi birine karşılık gelen bir parametre listesiyle aşırı yükleyemezsiniz. Daha fazla bilgi için bkz . Yordamları Aşırı Yükleme konusunda dikkat edilmesi gerekenler.
.NET Framework Güvenliği
Süresiz olarak büyük olabilecek bir diziyle her uğraştığınızda, uygulamanızın bazı iç kapasitesinin aşılması riski vardır. Parametre dizisini kabul ederseniz, çağıran kodun geçirilen dizisinin uzunluğunu test etmeli ve uygulamanız için çok büyükse uygun adımları atmalısınız.
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: İsteğe Bağlı Parametreler İsteyen Bir Yordamı Aşırı Yükleme
- Aşırı Yükleme Çözümü