В статье рассмотрены два основных подхода, доступных “из коробки” в C#, которые можно использовать для работы с аргументами командной строки.
- Запуск приложения с аргументами
- Запуск приложения с аргументами в режиме отладки в Visual Studio
- Работа с аргументами командной строки
Запуск приложения с аргументами
Дополнительные аргументы у программ могут быть использованы для указания на входные данные, которые нужно обработать, задания параметров, определяющих ее функционирование и т.п. Если вы работали с каким-нибудь консольным приложением, то, наверняка, сталкивались с этим.
Например, в Linux, команда просмотра содержимого каталога ls при запуске с параметром -l представит содержимое в виде списка. Утилите cat нужно передать в качестве аргумента имя файла, вот так: cat some_file.txt, и она выведет его содержимое в окно консоли. В Windows консоль используется не так активно, как в Linux, но и тут практически у всех приложений такого типа есть специальные ключи, например, аналог команды ls, команда dir может быть запущена с ключом /b следующим образом: dir /b, в результате будут показаны только названия каталогов, файлы будут пропущены. Графические приложения тоже могут иметь аргументы, для их использования, как правило, создается ярлык, запускающий приложение, в свойствах которого, в поле “Объект” указываются необходимые аргументы.
Запуск приложения с аргументами в режиме отладки в Visual Studio
При разработке в Visual Studio, для запуска приложения в режиме отладки с различными аргументами, необходимо их предварительно указать в свойствах проекта, для этого:
- В окне “Solutions” нажмите правой кнопкой на узел проекта и выберите в меню поле свойства – “Properties”.
- В появившемся окне перейдите на вкладку Debug.
- Аргументы, с которыми будет запущено приложение в режиме отладки, можете указать в области 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); } } } }