Events
Mar 17, 9 PM - Mar 21, 10 AM
Join the meetup series to build scalable AI solutions based on real-world use cases with fellow developers and experts.
Register nowThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Specifies that a declared programming element redeclares and hides an identically named element, or set of overloaded elements, in a base class.
The main purpose of shadowing (which is also known as hiding by name) is to preserve the definition of your class members. The base class might undergo a change that creates an element with the same name as one you have already defined. If this happens, the Shadows
modifier forces references through your class to be resolved to the member you defined, instead of to the new base class element.
Both shadowing and overriding redefine an inherited element, but there are significant differences between the two approaches. For more information, see Shadowing in Visual Basic.
Declaration Context. You can use Shadows
only at class level. This means the declaration context for a Shadows
element must be a class, and cannot be a source file, namespace, interface, module, structure, or procedure.
You can declare only one shadowing element in a single declaration statement.
Combined Modifiers. You cannot specify Shadows
together with Overloads
, Overrides
, or Static
in the same declaration.
Element Types. You can shadow any kind of declared element with any other kind. If you shadow a property or procedure with another property or procedure, the parameters and the return type do not have to match those in the base class property or procedure.
Accessing. The shadowed element in the base class is normally unavailable from within the derived class that shadows it. However, the following considerations apply.
If the shadowing element is not accessible from the code referring to it, the reference is resolved to the shadowed element. For example, if a Private
element shadows a base class element, code that does not have permission to access the Private
element accesses the base class element instead.
If you shadow an element, you can still access the shadowed element through an object declared with the type of the base class. You can also access it through MyBase
.
The Shadows
modifier can be used in these contexts:
.NET feedback
.NET is an open source project. Select a link to provide feedback:
Events
Mar 17, 9 PM - Mar 21, 10 AM
Join the meetup series to build scalable AI solutions based on real-world use cases with fellow developers and experts.
Register now