48 votes

Quelle est la différence entre public statique void Main () et privé statique void Main () dans une application console C #?

Quelle est la différence entre

 public static void Main()
 

et

 private static void Main()
 

dans une application console C #?

62voto

Ergwun Points 5293

Agir en tant que point de départ dans votre application, le Main méthode n'a pas à être public .

Si vous décidiez de le créer public , il serait possible de l'appeler à partir d'autres classes ou assemblys. Généralement, vous n’avez pas besoin de le faire, vous pouvez donc le garder private .

Un cas d'utilisation possible pour le rendre public serait de permettre aux tests automatisés de l'invoquer.

22voto

Zaheer Ahmed Points 12945

La différence entre les deux est la seule différence en public et private des modificateurs d'accès parce que les deux sont valables.Il dépend totalement de l'utilisation de l'application à utiliser.

Si vous souhaitez vous initier point d'entrée par un programme externe, (c'est à dire l'utilisation que l'API, pour fins de test), alors vous pourriez avoir besoin de les rendre publiques, de sorte qu'il est accessible.

public

Si vous savez il n'y a pas d'utilisation externe pour l'application puis c'est mieux pour le rendre privé donc pas de l'application externe.

private

11voto

m2o2r2g2 Points 469

Dans la plupart des cas, cela ne fera aucune différence. Microsoft préconise de rendre Main privé.

À ma connaissance, la seule valeur réelle de cette opération est qu’elle empêchera la méthode Main d’être invoquée directement par la base de code d’une autre application.

Une bonne discussion est disponible ici

6voto

Mark Sturgill Points 237

Mis à part la fonctionnalité normale de modificateur d'accès public et privé, rien. Les deux sont des points d'entrée valides.

Voir: Pourquoi le point d'entrée est-il autorisé à être privé? et Pourquoi la méthode Main est-elle privée?

4voto

zain27 Points 75

Le principal est marqué comme le point d'entrée pour l'exécution de l'exécutable lui-même lorsqu'il est privé donc rien de l'extérieur ne peut pas y accéder

En la rendant publique, fera de la méthode, accessible de l'extérieur

Lire pour plus de précisions http://social.msdn.microsoft.com/Forums/vstudio/en-US/9184c55b-4629-4fbf-ad77-2e96eadc4d62/why-is-main-in-c-not-a-public-static-?forum=csharpgeneral

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