Partager via


Niveaux d’accessibilité (référence C#)

Utilisez les modificateurs d’accès , protectedou internalprivate pour spécifier l’un des niveaux d’accessibilité déclarés publicsuivants pour les membres.

Accessibilité déclarée Sens
public L’accès n’est pas limité.
protected L'accès est limité à la classe contenante ou aux types dérivés de la classe contenante.
internal L’accès est limité à l’assembly actuel.
protected internal L’accès est limité à l’assembly actuel ou aux types dérivés de la classe conteneur.
private L’accès est limité au type conteneur.
private protected L'accès est limité à la classe conteneur ou aux types dérivés de la classe conteneur au sein de l'assemblage actuel.

Les types de niveau supérieur (non imbriqués) peuvent utiliser le modificateur de fichier . Le file modificateur limite l’accès au code dans le même fichier source. Vous ne pouvez pas combiner le file modificateur avec n’importe quel modificateur d’accès.

Utilisez un seul modificateur d’accès pour un membre ou un type, sauf lorsque vous utilisez les combinaisons ou private protected les protected internal combinaisons.

N’utilisez pas de modificateurs d’accès sur les espaces de noms. Les espaces de noms ne présentent aucune limitation d’accès.

Selon le contexte dans lequel une déclaration de membre se produit, seules certaines accessibilités déclarées sont autorisées. Si vous ne spécifiez pas de modificateur d’accès dans une déclaration de membre, une accessibilité par défaut est utilisée.

Les types de niveau supérieur, qui ne sont pas imbriqués dans d’autres types, peuvent uniquement avoir ou public accessibilitéinternal. L’accessibilité par défaut pour ces types est internal.

Les types imbriqués, qui sont membres d’autres types, peuvent avoir déclaré des accessibilités, comme indiqué dans le tableau suivant.

Membres de Accessibilité des membres par défaut Accessibilité déclarée du membre autorisée
enum public Aucun
class private public

protected

internal

private

protected internal

private protected
interface public public

protected

internal

private*

protected internal

private protected
struct private public

internal

private

* Un membre disposant interface d’une private accessibilité doit avoir une implémentation par défaut.

Remarque

Si vous modifiez une classe ou un struct avec le modificateur de record mot clé, utilisez les mêmes modificateurs d’accès. En outre, avec le modificateur, l’accessibilité des membres par défaut est toujours private pour la record classe et le struct.

L’accessibilité d’un type imbriqué dépend de son domaine d’accessibilité, que l’accessibilité déclarée du membre et le domaine d’accessibilité du type contenant immédiatement déterminent. Toutefois, le domaine d’accessibilité d’un type imbriqué ne peut pas dépasser celui du type conteneur.

Spécification du langage C#

Pour plus d'informations, voir 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.

Voir aussi