Niveles de accesibilidad (Referencia de C#)
Utilice los modificadores de acceso, public, protected, internal o private para especificar uno de los siguientes niveles de accesibilidad declarados para miembros.
Accesibilidad declarada |
Significado |
---|---|
public |
Acceso no restringido. |
protected |
Acceso limitado a la clase contenedora o a los tipos derivados de esta clase. |
internal |
Acceso limitado al ensamblado actual. |
protected internal |
Acceso limitado al ensamblado actual o a los tipos derivados de la clase contenedora. |
private |
Acceso limitado al tipo contenedor. |
Sólo se permite un modificador de acceso para un miembro o tipo, excepto cuando se utiliza la combinación protected internal.
Los modificadores de acceso no se pueden utilizar en espacios de nombres. Los espacios de nombres no presentan restricciones de acceso.
Según el contexto en el que se produce una declaración de miembro, sólo se permite declarar ciertos tipos de acceso. Si no se especifica ningún modificador de acceso en una declaración de miembro, se utiliza el tipo de acceso predeterminado.
Los tipos de nivel superior, que no están anidados en otros tipos, sólo pueden tener accesibilidad internal o public. La accesibilidad predeterminada para estos tipos es internal.
Los tipos anidados, que son miembros de otros tipos, pueden tener un tipo de acceso declarado como el que se indica en la siguiente tabla.
Miembros de |
Accesibilidad predeterminada |
Accesibilidades declaradas permitidas |
---|---|---|
enum |
public |
None |
class |
private |
public protected internal private protected internal |
interface |
public |
None |
struct |
private |
public internal private |
La accesibilidad de un tipo anidado depende de su dominio de accesibilidad, el cual se determina mediante la accesibilidad declarada para el miembro y el dominio de accesibilidad del tipo inmediato que lo contiene. Sin embargo, el dominio de accesibilidad de un tipo anidado no puede superar al del tipo contenedor.
Especificación del lenguaje C#
Para obtener más información, consulte la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.
Vea también
Referencia
Modificadores de acceso (Referencia de C#)
Dominio de accesibilidad (Referencia de C#)
Restricciones en el uso de los niveles de accesibilidad (Referencia de C#)
Modificadores de acceso (Guía de programación de C#)