Хорошо, поэтому я разбиваю аргументы командной строки пробелами, например, в командной строке, но проблема в том, что если пользователь пытается ввести в DoStuff «аргумент, в котором есть пробелы, но он заключен в кавычки», он не разделит его правильно. Я использую консольное приложение. Я пытался сделать это так: baseCommand - это строка, которую пользователь вводит в неразобранном виде, а secondCommand должен быть вторым аргументом.
int firstQuoteIndex = baseCommand.IndexOf('"');
if (firstQuoteIndex != -1)
{
int secondQuoteIndex = baseCommand.LastIndexOf('"');
secondCommand = baseCommand.Substring(firstQuoteIndex,
secondQuoteIndex - firstQuoteIndex + 1).Replace("\"", "");
}
Это работает хорошо, но во-первых, это грязно, и во-вторых, я не уверен, как это сделать, если пользователь вводит что-то вроде этого:
DoSomething "second arg that has spaces" "third arg that has spaces"
Имейте в виду, что пользователю не нужно вводить кавычки, если аргумент (ы) нет кавычек. Кто-нибудь есть какие-либо предложения, спасибо.