Sdílet prostřednictvím


Přetížená vlastnosti a metody (Visual Basic)

Přetížení je vytvoření více procedury, konstruktor instance nebo třídy se stejným názvem, ale argument pro různé typy vlastností.

Přetížení využití

Přetížení je zvláště užitečné, když objektový model způsobila, že využívat stejné názvy postupy, které pracují v různých datových typů.Třída, která se může zobrazit několik různých typů dat může mít například Display postupy, které vypadají takto:

Overloads Sub Display(ByVal theChar As Char)
    ' Add code that displays Char data.
End Sub
Overloads Sub Display(ByVal theInteger As Integer)
    ' Add code that displays Integer data.
End Sub
Overloads Sub Display(ByVal theDouble As Double)
    ' Add code that displays Double data.
End Sub

Bez přetížení, musíte vytvořit odlišné názvy pro každý postup, i když tomu totéž, jak ukazuje následující:

Sub DisplayChar(ByVal theChar As Char)
    ' Add code that displays Char data.
End Sub
Sub DisplayInt(ByVal theInteger As Integer)
    ' Add code that displays Integer data.
End Sub
Sub DisplayDouble(ByVal theDouble As Double)
    ' Add code that displays Double data.
End Sub

Přetížení usnadňuje použití vlastnosti nebo metody, protože nabízí výběr typů dat, které lze použít.Například přetížené Display popsanou metodu lze volat dříve všechny následující řádky kódu:

' Call Display with a literal of type Char.
Display("9"c)
' Call Display with a literal of type Integer.
Display(9)
' Call Display with a literal of type Double.
Display(9.9R)

V době spuštění Visual Basic určit správný postup založený na datové typy parametrů volání.

Přetížení pravidla

Členem třídy služby přetížené vytvoříte přidáním dvou nebo více vlastností nebo metod se stejným názvem.S výjimkou přetížené odvozené členů, každý člen přetížené musí mít parametr různé seznamy a následující položky nelze použít jako rozdílné funkce při přetížení vlastnost nebo proceduru:

  • Modifikátory, jako například ByVal nebo ByRef, který vztahují na člena nebo člena parametry.

  • Názvy parametrů

  • Návratové typy postupy

Overloads Klíčové slovo je volitelný, při přetížení, ale případné přetížení člen používá Overloads klíčové slovo a pak všechny ostatní členy přetížené se stejným názvem také určit toto klíčové slovo.

Odvozené třídy může přetížit zděděné členy s členy, které mají stejné parametry a typy parametrů proces označovaný jako stínový jméno a podpis.Pokud Overloads klíčové slovo při stínový jméno a podpis, implementaci odvozené třídy člena, bude použit namísto provedení v základní třídě a budou k dispozici pro instance třídy odvozené další přetížení pro daného člena.

Pokud Overloads klíčové slovo je vynechán, při přetížení zděděný člen s členem, který má stejné parametry a typy parametrů, pak přetížení se nazývá stínový provoz podle názvu.Stínový provoz podle názvu nahradí zděděné provádění člen a jiné přetížení vytvoří instance, odvozené třídy a jeho decedents k dispozici.

Overloads a Shadows Modifikátory nelze kombinovat s na vlastnost nebo metodu.

1z71zbeh.collapse_all(cs-cz,VS.110).gifPříklad

Následující příklad vytvoří přetížené metody, které přijímají buď String nebo Decimal vyjádření částky dolaru a vrátit řetězec obsahující DPH.

Tento příklad použití k vytvoření Přetěžovaná metoda

  1. Otevřít nový projekt a přidat třídu s názvem TaxClass.

  2. Přidejte následující kód do třídy TaxClass.

    Public Class TaxClass
        Overloads Function TaxAmount(ByVal decPrice As Decimal, 
             ByVal TaxRate As Single) As String
            TaxAmount = "Price is a Decimal. Tax is $" & 
               (CStr(decPrice * TaxRate))
        End Function
    
        Overloads Function TaxAmount(ByVal strPrice As String, 
              ByVal TaxRate As Single) As String
            TaxAmount = "Price is a String. Tax is $" & 
               CStr((CDec(strPrice) * TaxRate))
        End Function
    End Class
    
  3. Do formuláře přidáte následující postup.

    Sub ShowTax()
        ' 8% tax rate.
        Const TaxRate As Single = 0.08
        ' $64.00 Purchase as a String.
        Dim strPrice As String = "64.00"
        ' $64.00 Purchase as a Decimal.
        Dim decPrice As Decimal = 64
        Dim aclass As New TaxClass
        'Call the same method with two different kinds of data.
        MsgBox(aclass.TaxAmount(strPrice, TaxRate))
        MsgBox(aclass.TaxAmount(decPrice, TaxRate))
    End Sub
    
  4. Přidání tlačítka na formuláři a volání ShowTax z postupu Button1_Click události tlačítka.

  5. Spuštění projektu a klepněte na tlačítko ve formuláři testování přetížená ShowTax postup.

V době běhu kompilátoru zvolí příslušné přetížené funkce odpovídající parametry používán.Po klepnutí tlačítko je přetížená metoda volána s nejprve Price parametr, který je řetězec a zprávy, "cena je řetězec.Daň je $5.12 "se zobrazí.TaxAmountnazývá se Decimal hodnot podruhé a zprávy, "cena je desetinné číslo.Daň je $5.12 "se zobrazí.

Viz také

Referenční dokumentace

Příkaz Sub (Visual Basic)

Stíny (Visual Basic)

ByVal (Visual Basic)

Parametr ByRef (Visual Basic)

Přetížení (Visual Basic)

Stíny (Visual Basic)

Koncepty

Stínový provoz v jazyce Visual Basic

Základy dědičnosti (Visual Basic)

Další zdroje

Objekty a třídy v jazyce Visual Basic