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é)?

140
c#
demandé sur Peter Mortensen 2010-09-21 23:12:38

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
221
répondu Oded 2017-05-23 12:34:18

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.

Default Nested Member Accessibility & Allowed Accessibility Modifiers

Source: niveaux D'accessibilité (référence C) (6 décembre th , 2017)

7
répondu Nick Miller 2018-02-01 21:55:11

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.

7
répondu mrk 2018-02-13 18:04:16

par défaut est private . Sauf s'ils sont emboîtés, les classes sont internal .

-1
répondu Svisstack 2010-09-21 19:21:04