Argumentos de línea de comandos (Guía de programación de C#)

Actualización: noviembre 2007

Se pueden utilizar argumentos en el método Main; si se utilizan, tendrá una de las formas siguientes:

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

Para habilitar argumentos de la línea de comandos en el método Main de una aplicación de formularios Windows Forms, debe modificar manualmente la firma de Main en program.cs. El código generado por el diseñador de Windows Forms crea un elemento Main sin parámetros de entrada. También puede utilizar Environment.CommandLine o Environment.GetCommandLineArgs a fin de obtener acceso a los argumentos de la línea de comandos desde cualquier punto en una aplicación de consola o para Windows.

El parámetro del método Main es una matriz de tipo String que representa los argumentos de la línea de comandos. Normalmente se comprueba si existen argumentos mediante la propiedad Length, por ejemplo:

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

También se pueden convertir los argumentos de tipo string en tipos numéricos mediante la clase Convert el método Parse. Por ejemplo, la instrucción siguiente convierte string en un número long mediante el método Parse:

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

También se puede utilizar el tipo long de C#, que equivale a Int64:

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

Igualmente, es posible usar el método ToInt64 de la clase Convert para lograr el mismo objetivo:

long num = Convert.ToInt64(s);

Para obtener más información, vea Parse y Convert.

Ejemplo

En el ejemplo siguiente se muestra cómo utilizar argumentos de la línea de comandos en una aplicación de consola. El programa toma un argumento en tiempo de ejecución, lo convierte en un número entero y calcula el valor factorial del número. Si no se proporciona ningún argumento, el programa emite un mensaje en el que se describe la forma de utilizarlo correctamente.

Nota:

Si ejecuta una aplicación en Visual Studio, puede especificar argumentos de la línea de comandos en Página Depuración, Diseñador de proyectos.

Para obtener más ejemplos sobre cómo utilizar los argumentos de la línea de comandos, vea Cómo: Crear y utilizar archivos DLL de C# (Guía de programación de C#).

public class Functions
{
    public static long Factorial(int n)
    {
        // Test for invalid input
        if ((n <= 0) || (n > 256))
        { 
            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 < 256.");
        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.

Vea también

Tareas

Cómo: Mostrar argumentos de línea de comandos (Guía de programación de C#)

Cómo: Obtener acceso a argumentos de línea de comandos mediante Foreach (Guía de programación de C#)

Conceptos

Guía de programación de C#

Main() y argumentos de línea de comandos (Guía de programación de C#)

Referencia

Valores devueltos de Main() (Guía de programación de C#)

Clases (Guía de programación de C#)

System.Environment