Yordam Aşırı Yüklemesi (Visual Basic)
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ın adla ayırt etmek zorunda kalmadan yakından ilişkili birkaç sürümünü tanımlamaktır. Bunu parametre listesini değiştirerek yaparsınız.
Kuralları Aşırı Yükleme
Bir yordamı aşırı yüklerken aşağıdaki kurallar uygulanır:
Aynı ad. Aşırı yüklenmiş 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 yordam 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. İmzayı değiştirmeden 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:
,
Shared
ve gibiPublic
yordam değiştirici anahtar sözcükleriStatic
Parametre veya tür parametre adları
Tür parametresi kısıtlamaları (genel bir yordam için)
ve gibi
ByRef
parametre değiştirici anahtar sözcükleriOptional
Değer döndürip 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.
Geç Bağlı 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.
Yordamın Birden Çok Sürümü
Müşterinin bakiyesine göre bir işlem göndermek için bir Sub
yordam yazdığınızı ve müşteriye ada veya hesap numarasına göre başvurabilmek 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
veya Single
içinde Decimal
bir işlem tutarını da kabul etmek istiyorsanız, bu varyasyona izin vermek için daha fazla aşırı yükleme post
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 yordamı aşırı yüklemenin avantajı, çağrının esnekliğindendir. Yukarıdaki örnekte bildirilen yordamı kullanmak post
için, çağıran kod müşteri kimliğini veya Integer
olarak String
alabilir ve her iki durumda da aynı yordamı çağırabilir. 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 bkz.
- Yordamlar
- 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
- Nasıl yapılır: Belirsiz Sayıda Parametre İsteyen Bir Yordamı Aşırı Yükleme
- Yordamları Aşırı Yüklemeye İlişkin Düşünceler
- Aşırı Yükleme Çözümü
- Overloads
- Visual Basic'te Genel Türler