Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
MyBasekulcsszó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 ClassAz előző példa deklarálja a változót
shadowStringaz alaposztályban, és árnyékot ad a származtatott osztálynak. A származtatott osztály eljárásashowStringsakkor jeleníti meg a sztring árnyékolt verzióját, ha a névshadowStringnincs minősítve. Ezután megjeleníti az árnyékolt verziót, hashadowStringaMyBasekulcsszó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
- Deklarált elemekre mutató hivatkozások
- Árnyékolás a Visual Basicben
- Az árnyékolás és a felülírás közötti különbségek
- Hogyan rejtsünk el egy változót, amely ugyanazzal a névvel rendelkezik, mint a saját változónk
- Útmutató: Örökölt változó elrejtése
- Árnyékok
- Felülírások
- Én, Enyém, MyBase és MyClass
- Öröklés alapjai