Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
El nivel de acceso de un elemento declarado es la extensión de la capacidad de acceder a él, es decir, qué código tiene permiso para leerlo o escribir en él. Esto se determina no solo por cómo declara el propio elemento, sino también por el nivel de acceso del contenedor del elemento. El código que no puede tener acceso a un elemento contenedor no puede tener acceso a ninguno de sus elementos contenidos, incluso a los declarados como Public
. Por ejemplo, se puede tener acceso a una Public
variable de una Private
estructura desde dentro de la clase que contiene la estructura, pero no desde fuera de esa clase.
Público
La palabra clave Public de la instrucción de declaración especifica que se puede tener acceso al elemento desde el código en cualquier parte del mismo proyecto, desde otros proyectos que hacen referencia al proyecto y desde cualquier ensamblado compilado desde el proyecto. El código siguiente muestra una declaración de ejemplo Public
:
Public Class ClassForEverybody
Solo puede usar Public
en el nivel de módulo, interfaz o espacio de nombres. Esto significa que puede declarar un elemento público en el nivel de un archivo de origen o un espacio de nombres, o dentro de una interfaz, un módulo, una clase o una estructura, pero no en un procedimiento.
Protegido
La palabra clave Protected de la instrucción de declaración especifica que solo se puede tener acceso al elemento desde dentro de la misma clase o desde una clase derivada de esta clase. El código siguiente muestra una declaración de ejemplo Protected
:
Protected Class ClassForMyHeirs
Solo puede usar Protected
en el nivel de clase y solo cuando declara un miembro de una clase. Esto significa que puede declarar un elemento protegido en una clase, pero no en el nivel de un archivo de origen o espacio de nombres, o dentro de una interfaz, un módulo, una estructura o un procedimiento.
Amigo
La palabra clave Friend de la instrucción de declaración especifica que se puede tener acceso al elemento desde el mismo ensamblado, pero no desde fuera del ensamblado. El código siguiente muestra una declaración de ejemplo Friend
:
Friend stringForThisProject As String
Solo puede usar Friend
en el nivel de módulo, interfaz o espacio de nombres. Esto significa que puede declarar un elemento friend en el nivel de un archivo de origen o un espacio de nombres, o dentro de una interfaz, un módulo, una clase o una estructura, pero no en un procedimiento.
Amigo protegido
La combinación de palabras clave Protected Friend de la instrucción de declaración especifica que se puede tener acceso al elemento desde clases derivadas o desde el mismo ensamblado, o ambos. El código siguiente muestra una declaración de ejemplo Protected Friend
:
Protected Friend stringForProjectAndHeirs As String
Solo puede usar Protected Friend
en el nivel de clase y solo cuando declara un miembro de una clase. Esto significa que puede declarar un elemento friend protegido en una clase, pero no en el nivel de un archivo de origen o espacio de nombres, o dentro de una interfaz, módulo, estructura o procedimiento.
Privada
La palabra clave Private de la instrucción de declaración especifica que solo se puede tener acceso al elemento desde dentro del mismo módulo, clase o estructura. El código siguiente muestra una declaración de ejemplo Private
:
Private _numberForMeOnly As Integer
Solo puede usar Private
en el nivel de módulo. Esto significa que puede declarar un elemento privado dentro de un módulo, una clase o una estructura, pero no en el nivel de un archivo de origen o un espacio de nombres, dentro de una interfaz o en un procedimiento.
En el nivel de módulo, la declaración Dim
sin palabras clave de nivel de acceso equivale a una declaración Private
. Sin embargo, es posible que quiera usar la Private
palabra clave para facilitar la lectura e interpretación del código.
Protegido privado
La combinación de palabras clave Private Protected de la instrucción de declaración especifica que solo se puede tener acceso al elemento desde dentro de la misma clase, así como desde clases derivadas que se encuentran en el mismo ensamblado que la clase contenedora. El Private Protected
modificador de acceso se admite a partir de Visual Basic 15.5.
En el ejemplo siguiente se muestra una Private Protected
declaración:
Private Protected internalValue As Integer
Puede declarar un Private Protected
elemento solo dentro de una clase . No se puede declarar dentro de una interfaz o estructura, ni se puede declarar en el nivel de un archivo de origen o espacio de nombres, dentro de una interfaz o una estructura, o en un procedimiento.
Visual Basic 15.5 y versiones posteriores admiten el Private Protected
modificador de acceso. Para usarlo, agregue el siguiente elemento al archivo del proyecto de Visual Basic (*.vbproj). Siempre que Visual Basic 15.5 o posterior esté instalado en el sistema, le permite aprovechar todas las características de lenguaje compatibles con la versión más reciente del compilador de Visual Basic:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
Para usar el Private Protected
modificador de acceso, debe agregar el siguiente elemento al archivo del proyecto de Visual Basic (*.vbproj):
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Para obtener más información, consulte establecimiento de la versión del lenguaje Visual Basic.
Modificadores de acceso
Las palabras clave que especifican el nivel de acceso se denominan modificadores de acceso. En la tabla siguiente se comparan los modificadores de acceso:
Modificador de acceso | Nivel de acceso concedido | Elementos que puede declarar con este nivel de acceso | Contexto de declaración en el que puede usar este modificador |
---|---|---|---|
Public |
Sin restricción: Cualquier código que pueda ver un elemento público puede acceder a él. |
Interfaces Módulos Las clases Estructuras Miembros de la estructura Procedimientos Propiedades Variables de miembro Constantes Enumeraciones Eventos Declaraciones externas Delegados |
Archivo de origen Namespace Interfaz Módulo Clase Estructura |
Protected |
Derivada: El código de la clase que declara un elemento protegido, o una clase derivada de ella, puede tener acceso al elemento |
Interfaces Las clases Estructuras Procedimientos Propiedades Variables de miembro Constantes Enumeraciones Eventos Declaraciones externas Delegados |
Clase |
Friend |
Ensamblado: El código en el ensamblado que declara un elemento 'friend' puede acceder a él |
Interfaces Módulos Las clases Estructuras Miembros de la estructura Procedimientos Propiedades Variables de miembro Constantes Enumeraciones Eventos Declaraciones externas Delegados |
Archivo de origen Namespace Interfaz Módulo Clase Estructura |
Protected
Friend
|
Unión de Protected y Friend :El código dentro de la misma clase o ensamblaje que un elemento amigo protegido, o en cualquier clase derivada de la clase del elemento, tiene acceso a dicho elemento. |
Interfaces Las clases Estructuras Procedimientos Propiedades Variables de miembro Constantes Enumeraciones Eventos Declaraciones externas Delegados |
Clase |
Private |
Contexto de declaración: El código del tipo que declara un elemento privado, incluido el código dentro de los tipos contenidos, puede tener acceso al elemento |
Interfaces Las clases Estructuras Miembros de la estructura Procedimientos Propiedades Variables de miembro Constantes Enumeraciones Eventos Declaraciones externas Delegados |
Módulo Clase Estructura |
Private Protected |
Código de la clase que declara un elemento protegido privado o código en una clase derivada que se encuentra en el mismo ensamblado que la clase bas. | Interfaces Las clases Estructuras Procedimientos Propiedades Variables de miembro Constantes Enumeraciones Eventos Declaraciones externas Delegados |
Clase |