Langage C# – Les niveaux de visibilité

1 – Visibilité des classes

Définie dans un espace de nom, une classe possède deux niveaux de visibilité possibles :

internal : la classe est uniquement utilisable dans le projet dans lequel elle est définie (par défaut)
public : la classe est utilisable dans le projet dans lequel elle est définie, ainsi que dans les projets qui référencent le projet contenant la classe
Seules les classes implémentées dans une classe peuvent être définies private, ce qui signifie que la classe est uniquement utilisable dans la classe dans laquelle elles sont implémentées.

2 – Visibilité des membres des classes

Les membres des classes peuvent avoir différents niveaux de visibilité. Voici un schéma permettant de les comprendre :

Après s’être positionné dans la classe A, voici les classes dont les membres peuvent faire appel à un membre de cette classe en fonction du niveau de visibilité de ce membre :
private : seuls les membres de la classe A (par défaut)
protected : la classe A, ainsi que toutes les classes qui héritent de A (B, D, E)
internal : la classe A, ainsi que toutes les classes appartenant au même projet que A (B, C)
internal protected : union de protected et de internal (A, B, C, D, E)
public : toutes les classes (A, B, C, D, E, F)

About: James RAVAILLE

Travaillant avec la plateforme Microsoft .NET depuis 2002, j’alterne les missions de formation et d’ingénierie avec cette plateforme. J’écris ce blog pour transmettre mes connaissances à tout développeur, qu’il soit débutant ou expérimenté.