Shadows (Visual Basic)
Określa, że zadeklarowany element programowania redeclaruje i ukrywa identycznie nazwany element lub zestaw przeciążonych elementów w klasie bazowej.
Uwagi
Głównym celem cieniowania (nazywanego również ukrywaniem według nazwy) jest zachowanie definicji składowych klasy. Klasa bazowa może przejść zmianę, która tworzy element o takiej samej nazwie jak ta, która została już zdefiniowana. W takim przypadku Shadows
modyfikator wymusza odwołanie za pośrednictwem klasy do rozpoznania zdefiniowanej składowej zamiast do nowego elementu klasy bazowej.
Zarówno cieniowanie, jak i zastępowanie ponownie definiuje dziedziczony element, ale istnieją znaczące różnice między dwoma podejściami. Aby uzyskać więcej informacji, zobacz Cieniowanie w Visual Basic.
Reguły
Kontekst deklaracji. Można używać
Shadows
tylko na poziomie klasy. Oznacza to, że kontekst deklaracji elementuShadows
musi być klasą i nie może być plikiem źródłowym, przestrzenią nazw, interfejsem, modułem, strukturą lub procedurą.W jednej instrukcji deklaracji można zadeklarować tylko jeden element cieniowania.
Modyfikatory połączone. Nie można określić
Shadows
razem zOverloads
,Overrides
lubStatic
w tej samej deklaracji.Typy elementów. Możesz cieniować dowolny rodzaj zadeklarowanego elementu z dowolnym innym rodzajem. W przypadku cienia właściwości lub procedury z inną właściwością lub procedurą parametry i typ zwracania nie muszą być zgodne z właściwością lub procedurą klasy bazowej.
Uzyskiwanie dostępu do. W tle element w klasie bazowej jest zwykle niedostępny z poziomu klasy pochodnej, która go zaciemnia. Należy jednak wziąć pod uwagę następujące kwestie.
Jeśli element cieniowania nie jest dostępny z kodu odwołującego się do niego, odwołanie jest rozpoznawane jako element w tle. Jeśli na przykład
Private
element w tle element klasy bazowej, kod, który nie ma uprawnień dostępu do elementu, uzyskuje dostępPrivate
do elementu klasy bazowej.W przypadku cieniowania elementu nadal można uzyskać dostęp do zacienionego elementu za pośrednictwem obiektu zadeklarowanego przy użyciu typu klasy bazowej. Dostęp do niego można również uzyskać za pośrednictwem .
MyBase
Modyfikator Shadows
może być używany w następujących kontekstach: