Compartir a través de


protected (Referencia de C#)

La palabra clave protected es un modificador de acceso a miembros. Un miembro protegido es accesible dentro de su clase y por instancias de clases derivadas. Encontrará una comparación de protected con los otros modificadores de acceso en Niveles de accesibilidad.

Ejemplo

Se puede obtener acceso a un miembro protegido de una clase base en una clase derivada sólo si el acceso se realiza a través del tipo de la clase derivada. Por ejemplo, considere el siguiente segmento de código:

class A
{
    protected int x = 123;
}

class B : A
{
    static void Main()
    {
        A a = new A();
        B b = new B();

        // Error CS1540, because x can only be accessed by
        // classes derived from A.
        // a.x = 10; 

        // OK, because this class derives from A.
        b.x = 10;
    }
}

La instrucción a.x = 10 genera un error porque se realiza dentro del método estático Main y no de una instancia de la clase B.

Los miembros de un struct no se pueden proteger, ya que el struct no se puede heredar.

En este ejemplo, la clase DerivedPoint se deriva de Point. Por lo tanto, puede obtener acceso a los miembros protegidos de la clase base directamente desde la clase derivada.

    class Point 
    {
        protected int x; 
        protected int y;
    }

    class DerivedPoint: Point 
    {
        static void Main() 
        {
            DerivedPoint dpoint = new DerivedPoint();

            // Direct access to protected members:
            dpoint.x = 10;
            dpoint.y = 15;
            Console.WriteLine("x = {0}, y = {1}", dpoint.x, dpoint.y); 
        }
    }
    // Output: x = 10, y = 15

Si se cambian los niveles de acceso de x e y a private, el compilador producirá los siguientes mensajes de error:

'Point.y' is inaccessible due to its protection level.

'Point.x' is inaccessible due to its protection level.

Especificación del lenguaje C#

Para obtener más información, vea 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

Palabras clave de C#

Modificadores de acceso (Referencia de C#)

Niveles de accesibilidad (Referencia de C#)

Modificadores (Referencia de C#)

public (Referencia de C#)

private (Referencia de C#)

internal (Referencia de C#)

Conceptos

Guía de programación de C#

Otros recursos

Referencia de C#