Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

protected (référence C#)

Le mot clé protected est un modificateur d'accès au membre. Un membre protégé est accessible dans sa classe et depuis les instances de classe dérivée. Pour obtenir une comparaison entre protected et les autres modificateurs d'accès, consultez Niveaux d'accessibilité.

Un membre protégé d'une classe de base est accessible dans une classe dérivée seulement si l'accès s'effectue par le biais du type de la classe dérivée. Considérons par exemple le segment de code suivant :


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;
    }
}


L'instruction a.x = 10 génère une erreur car elle figure au sein de la méthode statique Main, et pas dans une instance de la classe B.

Les membres de struct ne peuvent pas être protégés, car le struct ne peut pas être hérité.

Dans cet exemple, la classe DerivedPoint est dérivée de Point. Ainsi, vous pouvez accéder aux membres protégés de la classe de base directement à partir de la classe dérivée.


    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 vous remplacez les niveaux d'accès de x et y par private, le compilateur affiche les messages d'erreur suivants :

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

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

Pour plus d'informations, consultez la Spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft