Main() et arguments de ligne de commande (Guide de programmation C#)Main() and command-line arguments (C# Programming Guide)

La méthode Main est le point d’entrée d’une application C#.The Main method is the entry point of a C# application. (Les bibliothèques et les services ne requièrent 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 appelée.(Libraries and services do not require a Main method as an entry point.) When the application is started, the Main method is the first method that is invoked.

Il ne peut y avoir qu’un seul point d’entrée dans un programme C#.There can only be one entry point in a C# program. Si plusieurs classes ont une méthode Main, vous devez compiler votre programme avec l’option de compilateur /main pour spécifier quelle méthode Main utiliser comme point d’entrée.If you have more than one class that has a Main method, you must compile your program with the /main compiler option to specify which Main method to use as the entry point. Pour plus d’informations, consultez l’article /main (C# Compiler Options) (/main [Options du compilateur C#]).For more information, see /main (C# Compiler Options).

class TestClass
{
    static void Main(string[] args)
    {
        // Display the number of command line arguments.
        Console.WriteLine(args.Length);
    }
}

Vue d'ensembleOverview

  • La méthode Main est le point d’entrée d’un programme exécutable ; c’est l’endroit où le contrôle du programme commence et se termine.The Main method is the entry point of an executable program; it is where the program control starts and ends.
  • Main est déclaré à l’intérieur d’une classe ou d’un struct.Main is declared inside a class or struct. Main doit être statique et ne doit pas être public.Main must be static and it need not be public. (Dans l’exemple précédent, il reçoit l’accès privé par défaut.) Il n’est pas nécessaire que la classe ou le struct englobant soit statique.(In the earlier example, it receives the default access of private.) The enclosing class or struct is not required to be static.
  • Main peut avoir un type de retour void, int ou, à partir de C# 7.1, Task ou Task<int>.Main can either have a void, int, or, starting with C# 7.1, Task, or Task<int> return type.
  • Si et seulement si Main retourne un Task ou Task<int>, la déclaration de Main peut inclure le modificateur async.If and only if Main returns a Task or Task<int>, the declaration of Main may include the async modifier. Notez que cela exclut spécifiquement une méthode async void Main.Note that this specifically excludes an async void Main method.
  • La méthode Main peut être déclarée avec ou sans paramètre string[], qui contient des arguments de ligne de commande.The Main method can be declared with or without a string[] parameter that contains command-line arguments. Lorsque vous utilisez Visual Studio pour créer des applications Windows, vous pouvez ajouter le paramètre manuellement ou bien utiliser la classe Environment pour obtenir les arguments de ligne de commande.When using Visual Studio to create Windows applications, you can add the parameter manually or else use the Environment class to obtain the command-line arguments. Les paramètres sont lus comme des arguments de ligne de commande avec index de base zéro.Parameters are read as zero-indexed command-line arguments. Contrairement à C et C++, le nom du programme n’est pas traité comme le premier argument de ligne de commande.Unlike C and C++, the name of the program is not treated as the first command-line argument.

L’ajout des types de retour async et Task, Task<int> simplifie le code de programme lorsque les applications de console doivent démarrer et await des opérations asynchrones dans Main.The addition of async and Task, Task<int> return types simplifies program code when console applications need to start and await asynchronous operations in Main.

spécification du langage C#C# language specification

Pour plus d'informations, voir la spécification du langage C#.For more information, see the C# Language Specification. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.The language specification is the definitive source for C# syntax and usage.

Voir aussiSee also