В чем разница между (string[] args) и System.Environment.CommandLine?

Я наследую обслуживание нескольких консольных приложений, которые вводятся, естественно, с помощью static void Main(string[] args). Однако код игнорирует массив argsи вместо этого считывает параметры командной строки из System.Environment.CommandLine.

Есть ли здесь функциональная разница?

Содержимое выглядит идентично. Во всяком случае, я бы заподозрил незначительное снижение производительности при вызове System.Environment.CommandLine(но недостаточно, чтобы я когда-либо беспокоился или достаточно заботился об измерении).


ОБНОВЛЕНИЕ: я подозревал, что System.Environment.CommandLineдолжен содержать путь к исполняемому файлу, но я его не видел... потому что искал не в том месте. Код ТАКЖЕ имеет string[] arrCmdLine = System.Environment.GetCommandLineArgs();.... System.Environment.CommandLine.ToLower()проверяется на наличие "отладки " в то время как все остальные параметры извлекаются из GetCommandLineArgs(), и я мысленно объединял их, когда говорил "почему бы просто не использовать args[]?"

В течение многих лет я мучился над тем, как лучше всего анализировать аргументы командной строки, когда все это время было «поместить их в правильном порядке!» [jk]

7
задан Michael Paulukonis 14 June 2012 в 19:12
поделиться