44 votes

Arguments de l'application console, comment les arguments sont transmis à la méthode Main

Ce serait une question de débutant en c#. Lorsque je crée l' application de la console , je reçois la méthode principale avec paramètre args comme chaîne de tableau. Je ne comprends pas comment cette méthode est appelée par le système et comment les arguments sont passés à la méthode Main. Peut-être que quelqu'un pourrait expliquer? La méthode Main est-elle remplacée par une sorte de classe de console ?

 namespace ConsoleApplication1
{
    class Program
    {    
        static void Main(string[] args)
        {    
        }
    }
}

33voto

V4Vendetta Points 15354

La méthode Main est le point d'entrée de votre application. Si vous passez à la caisse via ildasm alors

 .method private hidebysig static void  Main(string[] args) cil managed
{
  .entrypoint

C'est ce qui aide à appeler la méthode

Les arguments sont passés comme par exemple C:\AppName arg1 arg2 arg3

21voto

Zebi Points 3773

Le runtime divise les arguments donnés à la console à chaque espace.

Si vous appelez

 myApp.exe arg1 arg2 arg3

La méthode principale obtient un tableau de

 var args = new string[] {"arg1","arg2","arg3"}

5voto

Adiii Points 5246

dans visual studio, vous pouvez également faire comme ça pour passer simplement ou éviter l'argument de la ligne de commande

  static void Main(string[] args)
    {
        if (args == null)
        {
            Console.WriteLine("args is null"); // Check for null array
        }
        else
        {
            args=new string[2];
            args[0] = "welcome in";
            args[1] = "www.overflow.com";
            Console.Write("args length is ");
            Console.WriteLine(args.Length); // Write array length
            for (int i = 0; i < args.Length; i++) // Loop through array
            {
                string argument = args[i];
                Console.Write("args index ");
                Console.Write(i); // Write index
                Console.Write(" is [");
                Console.Write(argument); // Write string
                Console.WriteLine("]");
            }
        }

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