Maison > Article > développement back-end > Arguments de ligne de commande C#
En C#, l’exécution du programme démarre à partir de la méthode main(). La méthode main() n'accepte les arguments d'aucune autre méthode, mais elle accepte les arguments qui lui sont transmis par l'utilisateur via la ligne de commande, et ces arguments sont appelés arguments de ligne de commande. Voici quelques points importants concernant les arguments de ligne de commande en C# :
Syntaxe avec explication
La syntaxe de la méthode Main() prenant les arguments de ligne de commande est la suivante :
static void Main(string[] args) { //user code }
Dans la syntaxe ci-dessus, « static » est le mot-clé qui indique que la méthode Main() peut s'exécuter sans aucune instance. 'void' est le type de retour. « Main » indique qu'il s'agit de notre méthode Main() du programme, et « string[] » est le type d'arguments transmis à la méthode. 'args' est le nom défini par l'utilisateur donné aux arguments.
Les arguments de ligne de commande sont transmis à la méthode Main() sous la forme d'un tableau de chaînes de type afin que nous puissions transmettre un nombre n de paramètres lors de l'exécution de notre programme.
Exemple :
public static void Main(string[] args) { //user code }
Lorsque nous transmettons les paramètres à la méthode Main() ci-dessus, ils seront visualisés par la variable « args », un tableau de type chaîne. Ensuite, nous pouvons accéder à l'argument individuel de ce tableau en utilisant la position d'index.
Auparavant, chaque élément transmis sera de type chaîne qui pourra ensuite être modifié par le type de données requis à l'aide de la classe Convert ou de la méthode Parse() fournie par C#, comme le montrent les exemples ci-dessous :
long num = long.Parse(args[0]);
L'instruction ci-dessus convertira l'argument présent au numéro d'index 0 en une valeur « longue » équivalente à l'aide de la méthode Parse(), puis elle sera stockée dans la variable « num », qui est de type « long ». 🎜>
int num = Convert.ToInt32(args[1]);Cette instruction convertira l'argument présent au numéro d'index 1 en un entier signé équivalent de 32 bits, puis il sera stocké dans la variable 'num', qui est de type 'int.'
Nous pouvons également vérifier l'existence des arguments de ligne de commande, c'est-à-dire vérifier si les arguments sont passés à la méthode Main() ou non en utilisant la propriété 'Length' comme indiqué ci-dessous :
if (args.Length > 0) { System.Console.WriteLine("Arguments passed"); } else { System.Console.WriteLine("Arguments are not passed"); }Pour une application Windows Forms, pour activer les arguments de ligne de commande dans la méthode Main(), nous devons modifier la signature de la méthode Main() dans le fichier 'program.cs'. En effet, le concepteur de Windows Forms génère le code qui contient la méthode Main() sans paramètre d'entrée.
Si vous travaillez avec C# dans Visual Studio, il existe un bon moyen de saisir des arguments de ligne de commande pour une méthode Main() dans Visual Studio. Voici quelques étapes pour cela :
Exemples d'arguments de ligne de commande C#
Exemple n°1
Code :
using System; using System.IO; using System.Collections.Generic; namespace ConsoleApp4 { class Program { public static void Main(string[] args) { List<int> evenArray = new List<int>(); List<int> oddArray = new List<int>(); try { //checking if any argument exists if (args.Length == 0) { Console.WriteLine("Please enter numbers to check for odd even!"); return; } //accessing arguments using for loop for (int i = 0; i < args.Length; i++) { //checking for odd and even if ((Convert.ToInt32(args[i]) % 2) == 0) { evenArray.Add(Convert.ToInt32(args[i])); } else { oddArray.Add(Convert.ToInt32(args[i])); } } //displaying all the numbers entered Console.WriteLine("Numbers entered:"); for (int i = 0; i < args.Length; i++) { Console.WriteLine(args[i]); } //displaying even numbers entered Console.WriteLine("\nEven numbers: "); for (int i = 0; i < evenArray.Count; i++) { Console.WriteLine(evenArray[i]); } //displaying odd numbers entered Console.WriteLine("\nOdd numbers: "); for (int i = 0; i < oddArray.Count; i++) { Console.WriteLine(oddArray[i]); } Console.ReadLine(); } catch(Exception ex) { Console.WriteLine(ex.Message); } } } }
Sortie :
La capture d'écran contenant la commande pour exécuter le programme ci-dessus avec les entrées saisies et avec la sortie reçue est la suivante :
Exemple n°2
Code :
using System; using System.IO; using System.Collections.Generic; namespace ConsoleApp4 { class Program { public static void Main(string[] args) { int number; int factorial; try { //checking if any argument exists if (args.Length == 0) { Console.WriteLine("Please enter a number to calculate " + "its factorial!"); return; } if(args.Length > 1) { Console.WriteLine("Please enter only one number."); return; } Console.WriteLine("The number entered is: " + args[0]); number = Convert.ToInt32(args[0]); factorial = number; //calculating factorial of number using 'for' loop for(int i = number - 1; i >= 1; i--) { factorial = factorial * i; } Console.WriteLine("Factorial of {0} is {1}: ", args[0], factorial); Console.ReadLine(); } catch(Exception ex) { Console.WriteLine(ex.Message); } } } }
Sortie :
La capture d'écran contenant la commande pour exécuter le programme ci-dessus avec le numéro saisi et avec le résultat reçu est la suivante :
Remarque : Nous avons exécuté les deux programmes ci-dessus à l'aide de « Invite de commandes du développeur pour VS 2019 ». Nous pouvons également exécuter ces programmes à partir de Visual Studio en fournissant des arguments de ligne de commande via la zone de texte « Arguments de ligne de commande » dans l'option « Debug » de Visual Studio.
Les arguments de ligne de commande sont des paramètres transmis par l'utilisateur à la méthode Main() du programme à l'aide de la ligne de commande. L'utilisateur saisit ces arguments lors de l'exécution du programme. Ces arguments sont reçus par la méthode Main() dans un tableau de chaînes de types.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!