Argomenti della riga di comando (Guida per programmatori C#)
Per il metodo Main è possibile specificare degli argomenti. In tal caso, il metodo assume una delle seguenti forme:
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. Il programma accetta un argomento in fase di esecuzione, lo converte in un numero intero e calcola il fattoriale del numero. Se non viene fornito alcun argomento, il programma visualizza un messaggio in cui viene spiegato l'utilizzo corretto del programma.
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).
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.
Vedere anche
Attività
Procedura: visualizzare gli argomenti della riga di comando (Guida per programmatori C#)
Riferimenti
Valori restituiti da Main() (Guida per programmatori C#)
Classi (Guida per programmatori C#)
Concetti
Main() e argomenti della riga di comando (Guida per programmatori C#)