Аргументы командной строки (Руководство по программированию на C#)
Можно отправлять аргументы методу Main, указав метод одним из следующих способов:
static int Main(string[] args)
static void Main(string[] args)
Примечание
Для включения аргументов командной строки в методе Main приложения Windows Forms, необходимо вручную изменить сигнатуру метода Main в program.cs.Код, созданный конструктором Windows Forms, создает метод Main без входного параметра.Для доступа к аргументам командной строки из любой точки на консоли или в приложении Windows можно использовать Environment.CommandLine or Environment.GetCommandLineArgs.
Параметр метода Main является массивом значений типа String, представляющим аргументы командной строки. Обычно наличие аргументов определяется проверкой свойства Length, например:
if (args.Length == 0)
{
System.Console.WriteLine("Please enter a numeric argument.");
return 1;
}
Кроме того, строковые аргументы можно преобразовать в числовые типы с помощью класса Convert или метода Parse. Например, следующая инструкция преобразует string в число типа long с помощью метода Parse:
long num = Int64.Parse(args[0]);
Также можно использовать тип long языка C#, являющийся псевдонимом типа Int64:
long num = long.Parse(args[0]);
Для выполнения этой операции также можно воспользоваться методом ToInt64 класса Convert:
long num = Convert.ToInt64(s);
Дополнительные сведения см. в разделах Parse и Convert.
Пример
В следующем примере показано, как аргументы командной строки можно использовать в консольном приложении. Приложение принимает аргументы по одному, преобразует каждый из них в целое число и вычисляет факториал этого числа. Если ни одного аргумента не предоставлено, приложение выдает сообщение, содержащее разъяснение правильного использования данной программы.
Для компиляции и запуска приложения из командной строки выполните следующие действия.
Вставьте следующий код в любой текстовый редактор и сохраните его как текстовый файл с именем Factorial.cs.
//Add a using directive for System if the directive isn't already present. public class Functions { public static long Factorial(int n) { // Test for invalid input if ((n < 0) || (n > 20)) { return -1; } // Calculate the factorial iteratively rather than recursively: long tempResult = 1; for (int i = 1; i <= n; i++) { tempResult *= i; } return tempResult; } } class MainClass { static int Main(string[] args) { // Test if input arguments were supplied: if (args.Length == 0) { System.Console.WriteLine("Please enter a numeric argument."); System.Console.WriteLine("Usage: Factorial <num>"); return 1; } // Try to convert the input arguments to numbers. This will throw // an exception if the argument is not a number. // num = int.Parse(args[0]); int num; bool test = int.TryParse(args[0], out num); if (test == false) { System.Console.WriteLine("Please enter a numeric argument."); System.Console.WriteLine("Usage: Factorial <num>"); return 1; } // Calculate factorial. long result = Functions.Factorial(num); // Print result. if (result == -1) System.Console.WriteLine("Input must be >= 0 and <= 20."); else System.Console.WriteLine("The Factorial of {0} is {1}.", num, result); return 0; } } // If 3 is entered on command line, the // output reads: The factorial of 3 is 6.
На экране Пуск или в меню Пуск откройте окно Командная строка разработчика Visual Studio, а затем перейдите в папку, содержащую созданный файл.
Введите следующую команду для компиляции приложения.
csc Factorial.cs
Если приложение не содержит ошибок компиляции, создается исполняемый файл с именем Factorial.exe.
Для вычисления факториала 3 введите следующую команду:
Factorial 3
Выходные результаты команды будут следующими: The factorial of 3 is 6.
Примечание
При выполнении приложения в Visual Studio можно указать аргументы командной строки в Страница "Отладка" в конструкторе проектов.
Дополнительные примеры использования аргументов командной строки см. в разделе Практическое руководство. Создание и использование сборок с помощью командной строки (C# и Visual Basic).
См. также
Задачи
Ссылки
Значения, возвращаемые методом Main() (Руководство по программированию на C#)
Классы (Руководство по программированию на C#)
Основные понятия
Руководство по программированию на C#
Main() и аргументы командной строки (Руководство по программированию на C#)