Visibilité par défaut pour les classes C# et les membres (champs, méthodes, etc.)?
j'essaie de trouver une référence pour la visibilité par défaut des divers aspects de C#. Types de classe, les champs, les méthodes, les énumérations, etc.
Quelqu'un peut-il fournir une liste de ceux-ci ainsi que leur visibilité par défaut (c.-à-d. pas de modificateur préfixé)?
4 réponses
toutes les informations que vous recherchez peuvent être trouvées ici et ici (merci Reed Copsey ):
à Partir du premier lien:
les Classes et les structures qui sont déclarées directement dans un espace de noms (en d'autres mots, qui ne sont pas imbriqués dans d'autres classes ou des structures) peut être soit public ou interne. interne est la valeur par défaut si aucun modificateur d'accès est spécifié .
...
le niveau d'accès pour class members and struct members , y compris les classes et les structures imbriquées, est private by default .
...
interfaces par défaut à interne accès.
...
Délégués se comportent comme des classes et des structures. Par défaut, ils ont un accès interne lorsqu'ils sont déclarés directement dans un espace de noms, et un accès privé lorsqu'ils sont imbriqués .
à Partir de la deuxième lien:
Haut-niveau des types de , qui ne sont pas imbriqués dans d'autres types, ne peuvent avoir que l'accessibilité interne ou publique. L'accessibilité par défaut pour ces types est interne .
et pour les types imbriqués:
Members of Default member accessibility ---------- ---------------------------- enum public class private interface public struct private
de MSDN:
Top-level types , qui ne sont pas imbriqués dans d'autres types, ne peuvent avoir internal
ou public
accessibilité. 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.
Source: niveaux D'accessibilité (référence C) (6 décembre th , 2017)
Par défaut, le modificateur d'accès pour une classe est internal
. Cela signifie qu'une classe est accessible au sein de la même assemblée. Mais si nous voulons que la classe soit accessible à partir d'autres assemblées, alors elle doit être rendue publique.
par défaut est private
. Sauf s'ils sont emboîtés, les classes sont internal
.