
Accesibilidad de un miembro de clase y estructura
Los miembros de clase (incluyendo clases y estructuras anidadas) pueden declararse con cualquiera de los cinco tipos de acceso. Los miembros de estructura no pueden declararse como protegidos porque las estructuras no admiten la herencia.
La accesibilidad de un miembro nunca puede ser mayor que la de su tipo contenedor. Por ejemplo, un método público declarado en un tipo interno sólo tiene accesibilidad interna.
Cuando un miembro de una clase o estructura es una propiedad, campo, método, evento o delegado y dicho miembro es un tipo o tiene un tipo como parámetro o valor devuelto, la accesibilidad del miembro no puede ser mayor que la del tipo. Por ejemplo, no puede tener un método público M que devuelva una clase C a menos que C sea también pública. De igual forma, no puede tener una propiedad protegida de tipo A si A se declara como privado.
Los operadores definidos por el usuario siempre deben declararse como públicos. Para obtener más información, vea operator (Referencia de C#).
Los destructores no pueden tener modificadores de accesibilidad.
Para establecer el nivel de acceso para un miembro de clase o estructura, agregue la palabra clave adecuada a la declaración del miembro. A continuación se muestran algunos ejemplos:
// public class:
public class Tricycle
{
// protected method:
protected void Pedal() { }
// private field:
private int wheels = 3;
// protected internal property:
protected internal int Wheels
{
get { return wheels; }
}
}
Nota: |
|---|
La accesibilidad protectedinternal significa protegido O interno, no protegido E interno. En otras palabras, un miembro protectedinternal es accesible desde cualquier clase en el mismo ensamblado, incluso las clases derivadas. Para limitar la accesibilidad sólo a clases derivadas en el mismo ensamblado, declare la propia clase como interna y declare sus miembros como protegidos. |