Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Když kód v odvozené třídě přistupuje k proměnné, kompilátor obvykle vyřeší odkaz na nejbližší přístupnou verzi, tedy tu verzi, která je nejméně odvozenými kroky zpět od třídy, která přistupuje. Pokud je proměnná definována v odvozené třídě, kód obvykle přistupuje k této definici.
Pokud odvozená proměnná třídy stínuje proměnnou v základní třídě, skryje verzi základní třídy. K proměnné základní třídy můžete ale přistupovat tak, že ji zpřístupníte pomocí klíčovým slovem MyBase.
Přístup k proměnné základní třídy skryté odvozenou třídou
Ve výrazu nebo příkazu přiřazení před název
MyBaseproměnné zadejte klíčové slovo a tečku (.).Kompilátor vyřeší odkaz na verzi základní třídy té proměnné.
Následující příklad znázorňuje stínování prostřednictvím dědičnosti. Vytváří dva odkazy: jeden, který přistupuje ke stínované proměnné, a druhý, který obchází zakrývání proměnné.
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 ClassPředchozí příklad deklaruje proměnnou
shadowStringv základní třídě a stínuje ji v odvozené třídě. ProcedurashowStringsv odvozené třídě zobrazí stínovací verzi řetězce, pokud názevshadowStringnení kvalifikovaný. Potom zobrazí stínovou verzi, pokudshadowStringje kvalifikována pomocí klíčovéhoMyBaseslova.
Robustní programování
Pokud chcete snížit riziko odkazování na nezamýšlenou verzi stínované proměnné, můžete plně kvalifikovat všechny odkazy na stínovanou proměnnou. Stínování zavádí více než jednu verzi proměnné se stejným názvem. Pokud příkaz kódu odkazuje na název proměnné, verze, na kterou kompilátor přeloží odkaz, závisí na faktorech, jako je umístění příkazu kódu a přítomnost opravňujícího řetězce. To může zvýšit riziko odkazování na nesprávnou verzi proměnné.