Protected (Visual Basic) 

Specifies that one or more declared programming elements are accessible only from within their own class or from a derived class.

Remarks

Sometimes a programming element declared within a class contains sensitive data or restricted code, and you want to limit access to the element. However, if the class is inheritable and you anticipate a hierarchy of derived classes, it might be necessary for these derived classes to access the data or code. In such a case, you want the element to be accessible both from the base class and from all derived classes. To limit access to an element in this way, you can declare it with Protected.

Rules

  • Declaration Context. You can use Protected only at class level. This means the declaration context for a Protected element must be a class, and cannot be a source file, namespace, interface, module, structure, or procedure.

  • Combined Modifiers. You can use the Protected modifier in conjunction with the Friend (Visual Basic) modifier in the same declaration. This combination makes the declared elements accessible from anywhere in the same assembly, from their own class, and from derived classes. You can specify Protected Friend only on members of classes.

Behavior

  • Access Level. All code within a class can access its elements. Code in any class that derives from a base class can access all the Protected elements of the base class. This is true for all generations of derivation, meaning that a class can access Protected elements of the base class of the base class, and so on.

    Protected access is not a superset or subset of friend access.

  • Access Modifiers. The keywords that specify access level are called access modifiers. For a comparison of the access modifiers, see Access Levels in Visual Basic.

The Protected modifier can be used in these contexts:

Class Statement

Const Statement

Declare Statement

Delegate Statement

Dim Statement

Enum Statement

Event Statement

Function Statement

Interface Statement

Property Statement

Structure Statement

Sub Statement

See Also

Reference

Public (Visual Basic)
Friend (Visual Basic)
Private (Visual Basic)

Concepts

Access Levels in Visual Basic
Procedures in Visual Basic

Other Resources

Structures: Your Own Data Types
Understanding Classes