Condividi tramite


Argomenti della riga di comando (Guida per programmatori C#)

È possibile inviare argomenti al metodo Main definendo il metodo in uno dei modi seguenti:

static int Main(string[] args)
static void Main(string[] args)

Nota

Per attivare gli argomenti della riga di comando nel metodo Main in un'applicazione Windows Form, è necessario modificare manualmente la firma di Main in program.cs.Il codice generato in Progettazione Windows Form crea un oggetto Main senza un parametro di input.È possibile utilizzare anche Environment.CommandLine o Environment.GetCommandLineArgs per accedere agli argomenti della riga di comando da qualsiasi punto in una console o un'applicazione Windows.

Il parametro del metodo Main è una matrice String che rappresenta gli argomenti della riga di comando. Generalmente si determina se gli argomenti esistono eseguendo il test della proprietà Length, ad esempio:

if (args.Length == 0)
{
    System.Console.WriteLine("Please enter a numeric argument.");
    return 1;
}

È anche possibile convertire gli argomenti di tipo stringa in tipi numerici utilizzando la classe Convert o il metodo Parse. L'istruzione seguente, ad esempio, converte string in un numero long tramite il metodo Parse:

long num = Int64.Parse(args[0]);

È anche possibile utilizzare il tipo long di C#, che rappresenta l'alias per Int64:

long num = long.Parse(args[0]);

In alternativa, è possibile effettuare tale operazione utilizzando il metodo ToInt64 della classe Convert:

long num = Convert.ToInt64(s);

Per ulteriori informazioni, vedere Parse e Convert.

Esempio

Nell'esempio seguente viene illustrato come utilizzare gli argomenti della riga di comando in un'applicazione console. L'applicazione accetta un argomento in fase di esecuzione, lo converte in un valore integer e calcola il fattoriale del numero. Se non viene fornito alcun argomento, l'applicazione genera un messaggio in cui viene spiegato l'utilizzo corretto del programma.

Per compilare ed eseguire l'applicazione dal prompt dei comandi, attenersi alla seguente procedura:

  1. Incollare il seguente codice in qualsiasi editor di testo, quindi salvare il file come file di testo con il nome Factorial.cs.

    //Add a using directive for System if the directive isn't already present. 
    
    public class Functions
    {
        public static long Factorial(int n)
        {
            // Test for invalid input 
            if ((n < 0) || (n > 20))
            {
                return -1;
            }
    
            // Calculate the factorial iteratively rather than recursively: 
            long tempResult = 1;
            for (int i = 1; i <= n; i++)
            {
                tempResult *= i;
            }
            return tempResult;
        }
    }
    
    class MainClass
    {
        static int Main(string[] args)
        {
            // Test if input arguments were supplied: 
            if (args.Length == 0)
            {
                System.Console.WriteLine("Please enter a numeric argument.");
                System.Console.WriteLine("Usage: Factorial <num>");
                return 1;
            }
    
            // Try to convert the input arguments to numbers. This will throw 
            // an exception if the argument is not a number. 
            // num = int.Parse(args[0]); 
            int num;
            bool test = int.TryParse(args[0], out num);
            if (test == false)
            {
                System.Console.WriteLine("Please enter a numeric argument.");
                System.Console.WriteLine("Usage: Factorial <num>");
                return 1;
            }
    
            // Calculate factorial. 
            long result = Functions.Factorial(num);
    
            // Print result. 
            if (result == -1)
                System.Console.WriteLine("Input must be >= 0 and <= 20.");
            else
                System.Console.WriteLine("The Factorial of {0} is {1}.", num, result);
    
            return 0;
        }
    }
    // If 3 is entered on command line, the 
    // output reads: The factorial of 3 is 6.
    
  2. Dalla schermata Start o dal menu Start, aprire una finestra Prompt dei comandi di sviluppo di Visual Studio e passare alla cartella contenente il file appena creato.

  3. Immettere il comando seguente per compilare l'applicazione.

    csc Factorial.cs

    Se l'applicazione non presenta errori di compilazione, viene creato un file eseguibile denominato Factorial.exe.

  4. Immettere il comando seguente per calcolare il fattoriale di 3:

    Factorial 3

  5. Il comando produce l'output seguente: The factorial of 3 is 6.

Nota

Quando si esegue un'applicazione in Visual Studio, è possibile specificare gli argomenti della riga di comando nella Pagina Debug, Progettazione progetti.

Per ulteriori esempi sulle modalità di utilizzo degli argomenti della riga di comando, vedere Procedura: creare e utilizzare assembly dalla riga di comando (C# e Visual Basic).

Vedere anche

Attività

Procedura: visualizzare gli argomenti della riga di comando (Guida per programmatori C#)

Procedura: accedere agli argomenti della riga di comando utilizzando foreach (Guida per programmatori C#)

Riferimenti

Valori restituiti da Main() (Guida per programmatori C#)

Classi (Guida per programmatori C#)

Environment

Concetti

Guida per programmatori C#

Main() e argomenti della riga di comando (Guida per programmatori C#)