Sto ereditando la manutenzione su diverse applicazioni console che sono state immesse, naturalmente, con static void Main(string[] args)
. Tuttavia, il codice ignora il args
array e legge invece i parametri della riga di comando da System.Environment.CommandLine
.
C'è una differenza funzionale, qui?
I contenuti sembrano identici. Semmai, sospetterei un piccolo colpo di scena invocando System.Environment.CommandLine
(ma non abbastanza da farmi preoccupare o preoccuparmi abbastanza da misurare).
AGGIORNAMENTO: lo sospettavo System.Environment.CommandLine
dovrebbe contenere il percorso eseguibile, ma non lo vedevo ... perché stavo cercando nel posto sbagliato. Il codice ha ANCHE string[] arrCmdLine = System.Environment.GetCommandLineArgs();
.... System.Environment.CommandLine.ToLower()
viene verificato la presenza di "debug" mentre tutti gli altri parametri vengono estratti GetCommandLineArgs()
e stavo confondendo mentalmente i due mentre stavo andando "perché non semplicemente usare args[]
?"
Per anni "mi sono angustiato per il modo migliore di analizzare gli argomenti della riga di comando, quando da sempre è stato" posizionarli nell'ordine corretto! "[Jk]
risposte:
8 per risposta № 1System.Environment.CommandLine
include l'eseguibile e gli argomenti come una singola stringa.
// Sample for the Environment.CommandLine property.
using System;
class Sample
{
public static void Main()
{
Console.WriteLine();
// Invoke this sample with an arbitrary set of command line arguments.
Console.WriteLine("CommandLine: {0}", Environment.CommandLine);
}
}
/*
This example produces the following results:
C:>env0 ARBITRARY TEXT
CommandLine: env0 ARBITRARY TEXT
*/
http://msdn.microsoft.com/en-us/library/system.environment.commandline.aspx
Il args
Il parametro è un array di argomenti. Quindi, mentre puoi analizzare i singoli argomenti da System.Environment.CommandLine
, Non sono sicuro del motivo per cui vorresti. L'unica ragione che posso vedere è se hai bisogno di accedere ad argomenti al di fuori di Main()
, che probabilmente è comunque una cattiva idea. Il tuo Main()
Il metodo dovrebbe gestire gli argomenti e passarli nel resto dell'applicazione, se necessario.