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

Обновлен: Ноябрь 2007

Метод Main может использовать аргументы, принимая в этом случае одну из следующих форм:

static int Main(string[] args)
static void Main(string[] args)
cb20e19t.alert_note(ru-ru,VS.90).gifПримечание.

Для включения аргументов командной строки в методе 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.

Пример

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

cb20e19t.alert_note(ru-ru,VS.90).gifПримечание.

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

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

public class Functions
{
    public static long Factorial(int n)
    {
        // Test for invalid input
        if ((n <= 0) || (n > 256))
        { 
            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 < 256.");
        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.

См. также

Задачи

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

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

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

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

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

Ссылки

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

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

System.Environment