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


Útmutató: Örökölt változó elrejtése (Visual Basic)

A származtatott osztály örökli az alaposztály összes definícióját. Ha az alaposztály elemével azonos néven szeretne definiálni egy változót, elrejtheti vagy árnyékba helyezheti az alaposztály-elemet, amikor a változót a származtatott osztályban definiálja. Ha ezt teszi, a származtatott osztály kódja csak akkor fér hozzá a változóhoz, ha az explicit módon nem halad át az árnyékolási mechanizmuson.

Az örökölt változók elrejtésének másik oka az alaposztály módosításától való védelem. Az alaposztály olyan módosításon eshet át, amely módosítja az öröklődő elemet. Ha ez történik, a Shadows módosító arra kényszeríti a származtatott osztály hivatkozásait, hogy azok az alaposztály elem helyett az Ön változójára legyenek feloldva.

Örökölt változó elrejtése

  1. Győződjön meg arról, hogy az elrejteni kívánt változó osztályszinten van deklarálva (bármilyen eljáráson kívül). Ellenkező esetben nem kell elrejtenie.

  2. A származtatott osztályon belül írjon egy dim utasítást , amely deklarálja a változót. Használja ugyanazt a nevet, mint az örökölt változó neve.

  3. Adja meg az Árnyékok kulcsszót a deklarációban.

    Ha a származtatott osztály kódja a változó nevére hivatkozik, a fordító feloldja a változóra mutató hivatkozást.

    Az alábbi példa egy örökölt változó árnyékolását szemlélteti:

    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é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 az árnyékolt változók nem tervezett verziójára való hivatkozás kockázatát. Ezt a kockázatot csökkentheti egy árnyékolt változóra mutató összes hivatkozás teljes minősítésével.

Lásd még