как разобрать основные аргументы? - PullRequest
4 голосов
/ 07 августа 2010

Как я могу найти эту информацию:

думаю, что мы начали этот процесс:

testFile.exe i- 100 k- "hello" j-"C:\" "D:\Images" f- "true" 

Теперь, как мне получить основной аргумент при запуске приложения, поэтому у меня есть:

int i = ... ; //i will be 100
string k = ... ; // k = hello
string[] path = ... ; // = path[0] = "C:\" , path[1] = "D:\Images"
bool f = ... ; // f = true;

С уважением

Ответы [ 4 ]

3 голосов
/ 07 августа 2010

Аргументы передаются в вызываемую функцию Main:

static void Main(string[] args) 
{
    // The args array contain all the arguments being passed:
    // args[0] = "i-"
    // args[1] = "100"
    // args[2] = "k-"
    // args[3] = "hello"
    // ...
}

Аргументы в том же порядке, что и передаваемые в командной строке. Если вы хотите использовать именованные аргументы, вы можете взглянуть на этот пост , который предлагает NDesk.Options и Mono.Options .

2 голосов
/ 07 августа 2010

Как уже ответили, вы можете использовать параметр string[] args или Environment.GetCommandLineArgs(). Обратите внимание, что для развернутых приложений CLickOnce вам нужно что-то еще.

Вы можете выполнить свою собственную обработку на string[] или использовать библиотеку, например на в CodePlex.

Некоторые хитрые подробности о пробелах в именах файлов и экранировании кавычек см. в этом вопросе .

2 голосов
/ 07 августа 2010

Вы можете использовать Environment.CommandLine или Environment.GetCommandLineArgs ()

String[] arguments = Environment.GetCommandLineArgs();

Подробнее о MSDN

1 голос
/ 07 августа 2010

Вы можете использовать NDesk.Options .Вот их документация .

...