Le mot clé protected est un modificateur d'accès au membre. Un membre protégé est accessible dans sa classe et depuis les classes dérivées. 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 :
// protected_keyword.cs
using System;
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 A n'est pas dérivé de B.
Les membres de struct ne peuvent pas être protégés, car le struct ne peut pas être hérité.
ExempleDans 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.
// protected_keyword_2.cs
using System;
class Point
{
protected int x;
protected int y;
}
class DerivedPoint: Point
{
static void Main()
{
DerivedPoint dp = new DerivedPoint();
// Direct access to protected members:
dp.x = 10;
dp.y = 15;
Console.WriteLine("x = {0}, y = {1}", dp.x, dp.y);
}
}Sortie
x = 10, y = 15
CommentairesSi 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.
Spécification du langage C#Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.
-
3.5.1 Accessibilité déclarée
-
3.5.3 Accès protégé pour les membres d'instance
-
3.5.4 Contraintes d'accessibilité
-
10.2.3 Modificateurs d'accès
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ