Поделиться через


Аргументы командной строки (Руководство по программированию на 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.

Пример

В следующем примере показано, как аргументы командной строки можно использовать в консольном приложении. Приложение принимает аргументы по одному, преобразует каждый из них в целое число и вычисляет факториал этого числа. Если ни одного аргумента не предоставлено, приложение выдает сообщение, содержащее разъяснение правильного использования данной программы.

Для компиляции и запуска приложения из командной строки выполните следующие действия.

  1. Вставьте следующий код в любой текстовый редактор и сохраните его как текстовый файл с именем 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.
    
  2. На экране Пуск или в меню Пуск откройте окно Командная строка разработчика Visual Studio, а затем перейдите в папку, содержащую созданный файл.

  3. Введите следующую команду для компиляции приложения.

    csc Factorial.cs

    Если приложение не содержит ошибок компиляции, создается исполняемый файл с именем Factorial.exe.

  4. Для вычисления факториала 3 введите следующую команду:

    Factorial 3

  5. Выходные результаты команды будут следующими: The factorial of 3 is 6.

Примечание

При выполнении приложения в Visual Studio можно указать аргументы командной строки в Страница "Отладка" в конструкторе проектов.

Дополнительные примеры использования аргументов командной строки см. в разделе Практическое руководство. Создание и использование сборок с помощью командной строки (C# и Visual Basic).

См. также

Задачи

Практическое руководство. Отображение аргументов командной строки (Руководство по программированию на C#)

Практическое руководство. Доступ к аргументам командной строки с помощью оператора foreach (Руководство по программированию на C#)

Ссылки

Значения, возвращаемые методом Main() (Руководство по программированию на C#)

Классы (Руководство по программированию на C#)

Environment

Основные понятия

Руководство по программированию на C#

Main() и аргументы командной строки (Руководство по программированию на C#)