Odziedziczę konserwację na kilku aplikacjach konsolowych, które są wprowadzane, oczywiście, z static void Main(string[] args)
. Jednak kod ignoruje tablicę args
i zamiast tego odczytuje parametry wiersza polecenia z System.Environment.CommandLine
.Jaka jest różnica między (string [] args) a System.Environment.CommandLine?
Czy występuje tutaj różnica funkcjonalna?
Zawartość wygląda identycznie. Jeśli cokolwiek, podejrzewam, że osiągnięto minutę wydajności, wywołując System.Environment.CommandLine
(ale nie na tyle, żebym kiedykolwiek był zainteresowany lub wystarczająco starał się zmierzyć).
UPDATE: Podejrzewałem, że System.Environment.CommandLine
powinien zawierać wykonywalny ścieżki, ale nie widział go ... bo szukałem w złym miejscu. Kod TAKŻE ma string[] arrCmdLine = System.Environment.GetCommandLineArgs();
.... System.Environment.CommandLine.ToLower()
jest sprawdzany pod kątem obecności "debugowania", podczas gdy wszystkie inne parametry są wyodrębniane z GetCommandLineArgs()
, a ja byłem mentalnie łącząc te dwa, podczas gdy ja szedłem "dlaczego nie po prostu użyć args[]
?"
Przez lata borykałem się z najlepszym sposobem analizowania argumentów wiersza poleceń, gdy przez cały czas było "umieszczanie ich we właściwej kolejności!" [jk]