52 votes

Pourquoi les éléments définis dans un espace de noms ne peuvent-ils pas être explicitement déclarés ?

J’ai le code C# suivant :

Au moment de la compilation, j’obtiens l’erreur suivante:

Les éléments définis dans un espace de noms ne peuvent pas être explicitement déclarés comme privés, protégés ou protégés internes

Je suis débutant en C# donc peut-être que cette question peut sembler naïve, une idée de la cause de cette erreur?

Merci d’avance.

57voto

phoog Points 22667

Les éléments définis dans un espace de noms peuvent être explicitement déclarés publics ou internes.

Ils ne peuvent pas être explicitement déclarés privés ou protégés (ou protégés en interne) car ces modificateurs n’ont de sens que pour les membres d’une classe.

Votre `` , par exemple, n’a aucun sens, car « protected » signifie « accessible aux classes qui héritent de la classe contenante » - mais il n’y a pas de classe contenant pour GetDataBL.

17voto

gdoron Points 61066

Au niveau de l’espace de noms, il n’y a pas de classe à dériver, donc c’est inutile.

Vous pouvez utiliser uniquement `` ou `` dans le `` niveau

[Documents MSDN](http://msdn.microsoft.com/en-us/library/8fd16xs0%28v=vs.90%29.aspx)

3voto

Afazal Points 21

Dans la classe Accès interne privé, protégé et protégé, les spécificateurs ne sont pas autorisés au niveau de l’espace de noms.

Seuls les spécificateurs autorisés sont publics et internes en classe.

Uniquement pour les classes enfants accès interne privé, protégé ou protégé Les spécificateurs sont autorisés.

Exemple de code

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X