Quelle est la différence entre
public static void Main()
et
private static 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 #?
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.
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.
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.
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
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?
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 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.