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 yordamın aşırı yüklenmesi, aynı adı ama farklı parametre listelerini kullanarak birden çok sürümde tanımlanması anlamına gelir. Aşırı yüklemenin amacı, bir yordamı adla ayırt etmek zorunda kalmadan, birbirine yakın ilişkili birkaç sürümünü tanımlamaktır. Bunu parametre listesini değiştirerek yaparsınız.
Aşırı Yükleme Kuralları
Bir prosedürü aşırı yüklerken aşağıdaki kurallar uygulanır:
Aynı ad. Aşırı yükleme yapılmış her sürüm aynı yordam adını kullanmalıdır.
Farklı İmza. Aşırı yüklenmiş her sürüm, aşağıdakilerden en az birindeki diğer tüm aşırı yüklenmiş sürümlerden farklı olmalıdır:
Parametre sayısı
Parametrelerin sırası
Parametrelerin veri türleri
Tür parametrelerinin sayısı (genel prosedür için)
Dönüş türü (yalnızca dönüştürme işleci için)
Yordam adıyla birlikte, önceki öğeler topluca yordamın imzası olarak adlandırılır. Aşırı yüklenmiş bir yordamı çağırdığınızda, derleyici çağrının tanımla doğru eşleştiğinden denetlemek için imzayı kullanır.
İmzanın Parçası Olmayan Öğeler. İmza değişikliğine gitmeden bir yordamı aşırı yükleyemezsiniz. Özellikle, aşağıdaki öğelerden yalnızca bir veya daha fazlasını değiştirerek bir yordamı aşırı yükleyemezsiniz:
Prosedür değiştirici anahtar sözcükler,
Public,SharedveStaticgibiParametre veya tür parametre adları
Tür parametresi kısıtlamaları (genel bir yordam için)
Parametre değiştirici anahtar sözcükleri,
ByRefveOptionalgibiBir değer döndürüp döndürmediği
Dönüş değerinin veri türü (dönüştürme işleci hariç)
Önceki listedeki öğeler imzanın bir parçası değildir. Bunları aşırı yüklenmiş sürümler arasında ayrım yapmak için kullanamasanız da, bunları imzalarıyla düzgün bir şekilde ayırt edilen aşırı yüklenmiş sürümler arasında değiştirebilirsiniz.
Late-Bound Bağımsız Değişkenler. Geç bağlı nesne değişkenini aşırı yüklenmiş bir sürüme geçirmeyi planlıyorsanız, uygun parametreyi olarak Objectbildirmeniz gerekir.
Bir prosedürün birden çok versiyonu
Müşteri bakiyesine karşı bir işlem kaydetmek için bir Sub yordam yazdığınızda, müşteriye adıyla veya hesap numarasıyla ulaşabilmek istediğinizi varsayalım. Buna uyum sağlamak için, aşağıdaki örnekte olduğu gibi iki farklı Sub yordam tanımlayabilirsiniz:
Sub postName(ByVal custName As String, ByVal amount As Single)
' Insert code to access customer record by customer name.
End Sub
Sub postAcct(ByVal custAcct As Integer, ByVal amount As Single)
' Insert code to access customer record by account number.
End Sub
Aşırı Yüklenmiş Sürümler
Bunun alternatifi tek bir yordam adını aşırı yüklemektir. Her parametre listesi için yordamın bir sürümünü tanımlamak için Overloads anahtar sözcüğünü aşağıdaki gibi kullanabilirsiniz:
Overloads Sub post(ByVal custName As String, ByVal amount As Single)
' Insert code to access customer record by customer name.
End Sub
Overloads Sub post(ByVal custAcct As Integer, ByVal amount As Single)
' Insert code to access customer record by account number.
End Sub
Ek Aşırı Yüklemeler
Eğer Decimal veya Single içinde bir işlem tutarını da kabul etmek istiyorsanız, bu varyasyonu sağlamak için post fazladan aşırı yükleme yapabilirsiniz. Önceki örnekteki aşırı yüklemelerin her birine bunu yaptıysanız, tümü aynı ada ancak dört farklı imzaya sahip dört Sub yordama sahip olursunuz.
Aşırı Yüklemenin Avantajları
Bir prosedürü aşırı yüklemenin avantajı, çağrının esnekliğinde yatmaktadır. Önceki örnekte bildirilen post yordamını kullanmak için, müşteri kimliği String veya Integer olarak alınabilir ve her iki durumda da aynı yordam çağrılabilir. Aşağıdaki örnekte bu gösterilmektedir:
Imports MSVB = Microsoft.VisualBasic
Dim customer As String
Dim accountNum As Integer
Dim amount As Single
customer = MSVB.Interaction.InputBox("Enter customer name or number")
amount = MSVB.Interaction.InputBox("Enter transaction amount")
Try
accountNum = CInt(customer)
Call post(accountNum, amount)
Catch
Call post(customer, amount)
End Try
Ayrıca bakınız
- Prosedürler
- 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
- Nasıl Yapılır: Belirsiz Sayıda Parametre Alan Bir Yordamı Aşırı Yükleme
- İşlemleri Aşırı Yükleme Konuları
- Aşırı Yükleme Çözümü
- Aşırı Yükleme
- Visual Basic'te Genel Türler