Sdílet prostřednictvím


Procedura 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

Postupy: Definice více verzí procedury (Visual Basic)

Postupy: Volání přetížené procedury (Visual Basic)

Postupy: Přetížení procedury, která přebírá volitelné parametry (Visual Basic)

Postupy: Přetížení procedury, která přebírá nekonečný počet parametrů (Visual Basic).

Referenční dokumentace

Přetížení (Visual Basic)

Koncepty

Procedury v jazyce Visual Basic

Aspekty přetížení procedur (Visual Basic)

Rozlišení přetěžování (Visual Basic)

Obecné typy v jazyce Visual Basic (Visual Basic)