Jak: dostęp do zmiennej ukryte w klasie pochodnej (Visual Basic)
Gdy kod w klasie pochodnej uzyskuje dostęp do zmiennej, kompilator zwykle rozwiązuje odniesienie do najbliższej dostępnej wersji, oznacza to, że udostępniona wersja najmniejszą derivational kroki wstecz z dostępu do klasy.Jeśli zmienna jest zdefiniowana w klasie pochodnej, kod normalnie dostęp do tej definicji.
Jeśli zmienna klasy pochodnej cieni zmiennej w klasie bazowej, ukrywa wersji klasy podstawowej.Jednak uzyskać dostęp zmienna klasa bazowa przez kwalifikujących się on z MyBase słowa kluczowego.
Uzyskać dostęp do zmiennej klasy podstawowej, ukryte na skutek klasy pochodne
W wyrażeniu lub instrukcji przypisania, należy poprzedzić nazwę zmiennej MyBase słowa kluczowego i okres (.).
Kompilator usuwa odwołanie do klasy podstawowej wersji zmiennej.
Poniższy przykład ilustruje przesłanianie poprzez dziedziczenie.Powoduje to dwa odniesienia, jedną, który uzyskuje dostęp do zmiennej przesłaniania i jedną, która pomija przesłanianie.
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
Poprzedni przykład deklaruje zmienną shadowString w klasie bazowej i cieni ją w klasie pochodnej.Procedura showStrings w klasie pochodnej Wyświetla przesłaniania wersji łańcucha po nazwę shadowString nie kwalifikuje się.Następnie wyświetla tekst z cieniem wersji podczas shadowString jest kwalifikowaną z MyBase słowa kluczowego.
Stabilne programowanie
Aby zmniejszyć ryzyko odnoszące się do niezamierzonego wersję zmiennej cieniem, można pełni kwalifikują się wszystkie odwołania do zmiennej cieniowany.Przesłanianie wprowadzono więcej niż jedną wersję zmiennej o tej samej nazwie.Instrukcję kodu odnosi się do nazwy zmiennej, wersji, do których kompilator usuwa odwołanie, zależy od czynników, takich jak położenie instrukcji kodu i obecność dostosowywanego ciąg.Może to zwiększyć ryzyko odnoszące się do niewłaściwej wersji zmiennej.
Zobacz też
Zadania
Jak: ukrywanie zmiennej z taką samą nazwę jak zmienna (Visual Basic)
Jak: ukrywanie zmiennej dziedziczone (Visual Basic)
Informacje
Koncepcje
Odniesienia do zadeklarowanych elementów (Visual Basic)
Cieniowanie w języku Visual Basic
Różnice między cieniowanie i przesłanianie (Visual Basic)