Повторное размещение моего комментария в качестве ответа.
Поскольку аргументы командной строки представляются в виде строкового массива с argv, на самом деле вообще нет необходимости выполнять какое-либо разбиение:
public static void Main (string[] argv)
{
foreach (string arg in argv) {
Console.WriteLine("arg: {0}", arg);
}
}
Если вы вызываете программу как: myProg.exe /n /b /c:"MyProg 4.0"
, вы должны увидеть следующее:
arg: /n
arg: /b
arg: /c:MyProg 4.0
Единственное разделение времени будет необходимо, когда вы анализируете конкретный аргумент.