méthode sans modificateur d'accès
Ok c'est m'énerve.. je sais que je l'ai lu quelque part, et google n'aide pas.
Quel est le niveau d'accessibilité d'une méthode qui ne permet pas de spécifier un modificateur d'accès?
void Foo()
{
//code
}
Je veux dire internal
mais je ne suis pas sûr à 100%.
- Dans quelle langue?
- désolé, c# ajouté le tag.
Vous devez vous connecter pour publier un commentaire.
Le défaut d'accessibilité pour un type est
internal
, mais par défaut l'accès de ce type de membres dépend du type.En règle générale, les membres d'un classe sont
private
par défaut, où en tant que membres d'un struct sontpublic
par défaut. Ceci varie en fonction de la langue; par défaut struct modificateurs d'accès pour le C++ sont publiques, alors que pour le C#, ils sont privés.private
. Essayez par vous-même.struct
sontpublic
par défaut en C++, mais en fonction de la page MSDN liée à partir de plusieurs autres réponses, les membres d'unstruct
sontprivate
par défaut en C#.struct
sontprivate
par défaut en C#. (MSDN est l'un, et Le Langage de Programmation C#, 3e Ed. est l'autre).En supposant que c'est une méthode C#, puisque vous avez l' ".net" tag.
Les gens doivent faire la distinction entre les "membres" de l'accessibilité et de la "classe" de l'accessibilité.
Oui,
internal
est la valeur par défaut pour les classes, maisprivate
est la valeur par défaut pour les membres.Pour une classe: Interne est la valeur par défaut si aucun modificateur d'accès est spécifié.
Pour une méthode: Privé est la valeur par défaut si aucun modificateur d'accès est spécifié.
De Le Langage de Programmation C#, Troisième Édition par Anders Hejlsberg et al, section 10.3.5 (les"Membres du groupe - Modificateurs d'Accès") à la page 434:
Puis dans la section 11.2 ("les Membres de la Structure") sur la page 539:
L'article 11.3 ne mentionne rien au sujet des modificateurs d'accès, donc ma lecture de ce qui implique que les membres d'un
struct
sans un modificateur d'accès sont égalementprivate
par défaut. Cela correspond à une ce MSDN dit et avec ma propre expérience.Oh attendez, il y a une chose de plus ....
interface
des déclarations de méthode sont bien sûrpublic
par définition. Donc la suite de la mise en œuvre estpublic
, sans explicitement un modificateur d'accès.EqualityComparer
est recommandé, pas de la mise en œuvre de l'interface. consultez la section "Remarques"Les méthodes de la classe sont privés et scellé par défaut .NET.
Cela signifie que la méthode n'est visible à l'intérieur de la classe et ne peut pas être remplacée par la classe héritée.
espère que cela clarifie tout comme par capture d'écran directement à partir de MSDN