Udostępnij za pośrednictwem


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 elementu Shadows 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 z Overloads, Overrideslub Static 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ęp Private 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:

Zobacz też