Megosztás a következőn keresztül:


Útmutató: Egy származtatott osztály által rejtett változó elérése (Visual Basic)

Amikor egy származtatott osztály kódja hozzáfér egy változóhoz, a fordítóprogram általában a legközelebbi elérhető változatra oldja fel a hivatkozást, vagyis az elérhető változatra, amely a legkevesebb származtatási lépésnyire van a hozzáférést végző osztálytól. Ha a változó a származtatott osztályban van definiálva, a kód általában ehhez a definícióhoz fér hozzá.

Ha a származtatott osztályváltozó árnyékolt egy változót az alaposztályban, elrejti az alaposztály verzióját. Az alaposztály változója azonban a MyBase kulcsszóval való megadásával érhető el.

Egy származtatott osztály által rejtett alaposztályváltozó elérése

  • Egy kifejezésben vagy hozzárendelési utasításban előzze meg a változó nevét a MyBase kulcsszóval és egy ponttal (.).

    A fordító feloldja a változó alaposztály-verziójára való hivatkozást.

    Az alábbi példa az öröklés árnyékolását szemlélteti. Két hivatkozással rendelkezik, az egyik az árnyékolási változóhoz, a másik pedig az árnyékolást megkerülő.

    Public Class shadowBaseClass
        Public shadowString As String = "This is the base class string."
    End Class
    Public Class shadowDerivedClass
        Inherits shadowBaseClass
        Public Shadows shadowString As String = "This is the derived class string."
        Public Sub showStrings()
            Dim s As String = "Unqualified shadowString: " & shadowString &
                vbCrLf & "MyBase.shadowString: " & MyBase.shadowString
            MsgBox(s)
        End Sub
    End Class
    

    Az előző példa deklarálja a változót shadowString az alaposztályban, és árnyékot ad a származtatott osztálynak. A származtatott osztály eljárása showStrings akkor jeleníti meg a sztring árnyékolt verzióját, ha a név shadowString nincs minősítve. Ezután megjeleníti az árnyékolt verziót, ha shadowString a MyBase kulcsszóval van minősítve.

Robusztus programozás

Az árnyékolt változók nem tervezett verziójára való hivatkozás kockázatának csökkentése érdekében teljes mértékben minősítheti az árnyékolt változóra mutató összes hivatkozást. Az árnyékolás egy azonos nevű változó több verzióját is bevezeti. Ha egy kódutasítás a változó nevére hivatkozik, a kompiler által használt verzió olyan tényezőktől függ, mint a kódutasítás helye és a minősítő sztring jelenléte. Ez növelheti annak kockázatát, hogy a változó nem megfelelő verziójára hivatkozik.

Lásd még