Řízení přetížení (Visual Basic)
Přetížení rozumí postup definování ve více verzích, pomocí stejného názvu, ale seznamy různých parametrů.Účelem přetížení je definovat úzce souvisejících verzí postup bez nutnosti odlišeny podle názvu.Provedete změny seznamu parametrů.
Přetížení pravidla
Postup, přetěžovat, platí následující pravidla:
Stejný název.Každá verze přetížené, musíte použít stejný název procedury.
Jiný podpis.Každá verze přetížené musí lišit od ostatní přetížené verze alespoň jeden z následujících hledisek:
Počet parametrů.
Pořadí parametrů
Datové typy parametrů
Počet parametrů typu (pro obecný postup)
Návratový typ (pouze pro převod operátor)
Spolu s názvem procedury souhrnně nazývaných předchozí položky podpis postupu.Při volání procedury přetížené kompilátor pomocí podpisu volání správně odpovídá definici.
Položky nejsou části podpisu.Postup nelze přetížit bez obměňování podpis.Zejména nelze přetěžování postup změnou pouze jednu nebo více z následujících položek:
Postup modifikátor klíčová slova, jako například Public, Shared, aStatic
Parametr typu nebo názvy parametrů
Omezení parametru typu (pro obecný postup)
Parametr modifikátor klíčová slova, jako například ByRef aOptional
Zda vrací hodnotu
Datový typ návratové hodnoty (kromě pro převod operátor)
Položky v předchozím seznamu nejsou součástí podpisu.Přestože je nelze použít rozlišovat mezi verzemi přetížené, můžete jim liší přetížené verze, které jsou řádně rozlišeny podle jejich podpisy.
Pozdní vazbou, argumenty.Pokud máte v úmyslu předat přetížené verze pozdní proměnné vázaného objektu, musíte deklarovat jako příslušný parametr Object.
Více verzí postupu
Předpokládejme, že psaní Sub postup zaúčtování transakce proti saldo zákazníka a chcete mít možnost odkázat zákazníka název nebo číslo účtu.Toto přizpůsobení, můžete definovat dvou různých Sub postupy, jako v následujícím příkladu:
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
Přetížená verze
Alternativou je přetěžování název jednotného postupu.Můžete použít Přetížení (Visual Basic) klíčové slovo verze postupu pro každý parametr seznam definovat takto:
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
Další přetížení
Pokud jste chtěli také přijmout částka transakce v obou Decimal nebo Single, nelze dále přetěžování post pro tuto variantu.Pokud jste to každé přetížení v předchozím příkladu by mít čtyři Sub postupy, všechny se stejným názvem, ale čtyři různé podpisy.
Výhody přetížení
Výhodou přetížení postup je flexibilitu volání.Použití post procedura deklarována v předchozím příkladu volající kód můžete získat přístup k identifikaci odběratele jako String nebo Integera v každém případě zavolejte stejným postupem.To ukazuje následující příklad:
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
Viz také
Úkoly
Postup: definovat více verzí postupu (Visual Basic)
Jak: volání přetížené procedury (Visual Basic)
Jak: přetěžování postup, volitelné parametry (Visual Basic)
Jak: přetěžování postup, který převezme neurčitý počet parametrů (Visual Basic)
Referenční dokumentace
Koncepty
Procedury v jazyce Visual Basic
Důležité informace přetížení postupy (Visual Basic)