Доступ к аргументам командной строки в C#

В статье рассмотрены два основных подхода, доступных “из коробки” в C#, которые можно использовать для работы с аргументами командной строки.

Запуск приложения с аргументами

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

Например, в Linux, команда просмотра содержимого каталога ls при запуске с параметром -l представит содержимое в виде списка. Утилите cat нужно передать в качестве аргумента имя файла, вот так: cat some_file.txt, и она выведет его содержимое в окно консоли. В Windows консоль используется не так активно, как в Linux, но и тут практически у всех приложений такого типа есть специальные ключи, например, аналог команды ls, команда dir может быть запущена с ключом /b следующим образом: dir /b, в результате будут показаны только названия каталогов, файлы будут пропущены. Графические приложения тоже могут иметь аргументы, для их использования, как правило, создается ярлык, запускающий приложение, в свойствах которого, в поле “Объект” указываются необходимые аргументы.

Запуск приложения с аргументами в режиме отладки в Visual Studio

При разработке в Visual Studio, для запуска приложения в режиме отладки с различными аргументами, необходимо их предварительно указать в свойствах проекта, для этого:

  1. В окне “Solutions” нажмите правой кнопкой на узел проекта и выберите в меню поле свойства – “Properties”.
  2. В появившемся окне перейдите на вкладку Debug.
  3. Аргументы, с которыми будет запущено приложение в режиме отладки, можете указать в области Command line arguments.

Работа с аргументами командной строки

Классический способ

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

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Work with args directly:");
            foreach (string arg in args)
            {
                Console.WriteLine(arg);
            }
            Console.ReadKey();
        }
    }
}

Использование System.Environment

Если вы разрабатываете графическое приложение с использованием Windows Forms или WPF, то для работы с аргументами командной строки лучше воспользоваться функцией GetCommandLineArgs() из System.Environment, она возвращает список аргументов в виде массива строк. Пример использования представлен ниже.

using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            foreach(string s in System.Environment.GetCommandLineArgs())
            {
                MessageBox.Show(s);
            }
        }
    }
}

 

Добавить комментарий

Ваш адрес email не будет опубликован.