- 08/02/2017
- 2 minutes à lire
-
- B
- Y
- j
- M
- m
-
+9
La méthode Main
est le point d’entrée d’une application C#. (Les bibliothèques et les services ne nécessitent pas de méthode Main
comme point d’entrée.) Lorsque l’application est démarrée, la méthode Main
est la première méthode invoquée.
Il ne peut y avoir qu’un seul point d’entrée dans un programme C#. Si vous avez plusieurs classes qui ont une méthode Main
, vous devez compiler votre programme avec l’option du compilateur -main
pour spécifier quelle méthode Main
utiliser comme point d’entrée. Pour plus d’informations, voir -main (Options du compilateur C#).
Aperçu
- La méthode
Main
est le point d’entrée d’un programme exécutable ; c’est là que le contrôle du programme commence et se termine. Main
est déclaré dans une classe ou une structure.Main
doit être statique et il n’a pas besoin d’être public. (Dans l’exemple précédent, il reçoit l’accès par défaut de private.) La classe ou la structure englobante ne doit pas être statique.Main
peut avoir unvoid
int
, ou, en commençant par C#7.1,Task
, ouTask<int>
type de retour.- Si et seulement si
Main
renvoie unTask
ouTask<int>
, la déclaration deMain
peut inclure leasync
modificateur. Notez que cela exclut spécifiquement une méthodeasync void Main
. - La méthode
Main
peut être déclarée avec ou sans paramètrestring
qui contient des arguments de ligne de commande. Lorsque vous utilisez Visual Studio pour créer des applications Windows, vous pouvez ajouter le paramètre manuellement ou bien utiliser la méthode GetCommandLineArgs() pour obtenir les arguments de ligne de commande. Les paramètres sont lus sous forme d’arguments de ligne de commande indexés à zéro. Contrairement à C et C++, le nom du programme n’est pas traité comme le premier argument de ligne de commande dans le tableauargs
, mais c’est le premier élément de la méthode GetCommandLineArgs().
Voici une liste de signatures Main
valides :
Les exemples précédents utilisent tous le modificateur d’accesseur public. C’est typique, mais pas obligatoire.
L’ajout de async
et Task
Task<int>
types de retour simplifie le code du programme lorsque les applications de console doivent démarrer et await
opérations asynchrones dans Main
.