(Visual Basic) aşırı yordamı
Aşırı bir yordam, birden çok sürümü aynı ada ancak farklı parametre listeleri kullanarak tanımlama anlamına gelir.Aşırı amacı pek çok yakından ilgili sürümü bir yordam adıyla aralarındaki gerek kalmadan tanımlamaktır.Bunun için parametre listesi değişen tarafından.
Kurallar aşırı
Bir yordam tekrar tıklattığınızda, aşağıdaki kurallar geçerlidir:
Aynı adı.Aşırı yüklü her sürümü aynı yordam adı kullanmanız gerekir.
Farklı imza.Aşırı yüklü her sürümü diğer aşırı yüklü sürümlerini en az bir aşağıdaki açılardan farklılık gerekir:
Parametre sayısı
Parametre
Parametre veri türleri
Tür parametreleri (için genel bir yordam) sayısı
Dönüş türü (yalnızca için bir dönüştürme işleci)
Yordam adı ile birlikte topluca önceki Items adlý imza yordam.Aşırı yüklü bir yordamı çağırdığınızda, derleyici imza çağrısı doğru tanım eşleşen denetlemek için kullanır.
Öğeleri olmayan Kısım imza.İmza değişen olmadan bir yordam aþýrý yükleyemezsiniz.Özellikle, bir veya daha fazla aşağıdaki öğeleri yalnızca değişen tarafından bir yordam tekrar yükleyemez:
Yordam değiştirici anahtar sözcükler gibi Public, Shared, veStatic
Parametre veya türü parametre adları
(İçin genel bir yordam) türü parametresi kısıtlamaları
Parametre değiştirici anahtar sözcükler gibi ByRef veOptional
Olup bir değer verir
(Dışında için bir dönüştürme işleci) değerin veri türü
Yukarıdaki listede öğeler imzanın bir parçası değil.Aşırı yüklü sürümlerini görmek arasında ayrım yapmak için kullanamazsınız, ancak kendi imzaları tarafından düzgün Ayrıştırılan aşırı yüklü sürümlerini arasında farklılık gösterebilir.
Sonradan bağlanan bağımsız.Aşırı yüklü bir sürüme geç ilişkili nesne değişkeni geçirmek istiyorsanız, uygun parametre olarak bildirmek Object.
Bir yordam birden çok sürümü
Yazmakta olduğunuz varsayalım bir Sub yordam, bir müşterinin bakiyesi ve karşı bir hareketin deftere nakletmek için istediğiniz adı veya hesap numarası tarafından müşteriyle ilgilidir yapabilmek.Bunu yapabilmek için iki farklı tanımlayabilirsiniz Sub yordamlar, aşağıdaki örnekte olduğu gibi:
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üklü sürümlerini görmek
Bir tek bir yordam adı tekrar için alternatif bir yöntemdir.Kullanabileceğiniz Aşırı yükleme (Visual Basic) gibi her parametre listesi prosedürü sürümünü tanımlamak için anahtar sözcük:
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ükleme
Ayrıca ya da hareket miktarı kabul isteseydiniz Decimal veya Single, daha fazla tekrar post bu değişim için izin vermek için.Bu olsaydı her önceki örnekte aşırı yükleme için dört elinizde Sub yordamlar, aynı ada sahip tüm ancak dört farklı imzalara sahip.
Aşırı yararları
Bir yordam aşırı avantajı, çağrı esneklik olmasıdır.Kullanmak için post yordamı çağıran kodun, müşteri kimliği olarak alabileceği Yukarıdaki örnekte bildirilen bir String veya bir Integerve sonra her iki durumda da aynı yordam çağrısı.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.
Görevler
Nasıl yapılır: (Visual Basic) bir yordam birden çok sürümlerini tanımlar
Nasıl yapılır: (Visual Basic) aşırı yüklü bir yordam çağrısı
Nasıl yapılır: (Visual Basic) isteğe bağlı parametreleri alır bir yordam tekrar
Nasıl yapılır: bir yordam parametreleri (Visual Basic) sınırsız sayıda alır tekrar
Başvuru
Kavramlar
Yordamlar (Visual Basic) aşırı dikkat edilecek noktalar