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.
Bir prosedürü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
Yöntemin ve çağrı kodu mantığının, bir
ParamArrayparametresinden daha çok aşırı yüklenmiş sürümlerden yarar sağladığından emin olun. 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 durumu ve 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
SubveyaFunctionbildirim deyimi yazın. Bu aşırı yüklenmiş sürümde neOptionalne deParamArrayanahtar sözcüğünü kullanmayın.Her bildirimde,
SubveyaFunctionanahtar sözcüğünden ö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 prosedürü uygun şekilde
End SubveyaEnd Functiondeyimiyle 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.
Parametre dizisi için tek boyutlu bir dizi alan bir parametre listesiyle böyle bir prosedürü 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, kontrolü çağıran bağımsız değişken listesiyle eşleşen sürüme aktarır.
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ın Aşırı Yüklenmesinde Dikkat Edilmesi Gereken Hususlar.
.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. Bir parametre dizisini kabul ediyorsanız, çağıran kodun dizinin uzunluğunu kontrol etmeli ve bu uzunluk uygulamanız için çok büyükse uygun önlemleri almalısınız.
Ayrıca bakınız
- Prosedürler
- Prosedür Parametreleri ve Bağımsız Değişkenleri
- İsteğe Bağlı Parametreler
- Parametre Dizileri
- Metot Aşırı Yükleme
- Sorun Giderme Prosedürleri
- Nasıl Yapılır: Bir Yordamın Birden Çok Sürümünü Tanımlama
- Nasıl Yapılır: Aşırı Yüklenmiş Prosedür Çağırma
- Nasıl yapılır: İsteğe Bağlı Parametreler Alan Bir Yordamı Aşırı Yüklemek
- Aşırı Yükleme Çözümü