Befehlszeilenargumente (C#-Programmierhandbuch)Command-Line Arguments (C# Programming Guide)

Sie können Argumente an die Main- Methode senden, indem Sie die Methode auf eine der folgenden Arten definieren:You can send arguments to the Main method by defining the method in one of the following ways:

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

Hinweis

Um in der Main-Methode in einer Windows Forms-Anwendung Befehlszeilenargumente zu aktivieren, müssen Sie die Signatur von Main in „program.cs“ manuell ändern.To enable command-line arguments in the Main method in a Windows Forms application, you must manually modify the signature of Main in program.cs. Im vom Windows Forms-Designer generierten Code wird ein Main ohne einen Eingabeparameter erstellt.The code generated by the Windows Forms designer creates a Main without an input parameter. Sie können auch Environment.CommandLine oder Environment.GetCommandLineArgs verwenden, um von einem beliebigen Punkt in einer Konsolen- oder Windows-Anwendung auf die Befehlszeilenargumente zuzugreifen.You can also use Environment.CommandLine or Environment.GetCommandLineArgs to access the command-line arguments from any point in a console or Windows application.

Der Parameter der Main-Methode ist ein String-Array, das die Befehlszeilenargumente darstellt.The parameter of the Main method is a String array that represents the command-line arguments. Normalerweise bestimmen Sie, ob Argumente vorhanden sind, indem Sie z. B. die Length-Eigenschaft testen:Usually you determine whether arguments exist by testing the Length property, for example:

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

Sie können die Zeichenfolgenargumente auch mit der Convert-Klasse oder der Parse-Methode in numerische Typen konvertieren.You can also convert the string arguments to numeric types by using the Convert class or the Parse method. Die folgende Anweisung konvertiert z. B. string mithilfe der long-Methode in eine Parse-Zahl:For example, the following statement converts the string to a long number by using the Parse method:

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

Sie können auch den C#-Typ long verwenden, der als Alias für Int64 fungiert:It is also possible to use the C# type long, which aliases Int64:

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

Sie können für dieselbe Aufgabe auch die Convert-Klassenmethode ToInt64 verwenden:You can also use the Convert class method ToInt64 to do the same thing:

long num = Convert.ToInt64(s);  

Weitere Informationen finden Sie unter Parse und Convert.For more information, see Parse and Convert.

BeispielExample

Im folgenden Beispiel wird gezeigt, wie Befehlszeilenargumente in einer Konsolenanwendung verwendet werden.The following example shows how to use command-line arguments in a console application. Die Anwendung übernimmt zur Laufzeit ein Argument, konvertiert das Argument in eine ganze Zahl und berechnet die Fakultät der Zahl.The application takes one argument at run time, converts the argument to an integer, and calculates the factorial of the number. Wenn keine Argumente übergeben werden, erzeugt die Anwendung eine Meldung, in der die richtige Verwendung des Programms erläutert wird.If no arguments are supplied, the application issues a message that explains the correct usage of the program.

Führen Sie die folgenden Schritte aus, um die Anwendung von einer Eingabeaufforderung aus zu kompilieren und auszuführen:To compile and run the application from a command prompt, follow these steps:

  1. Fügen Sie den folgenden Code in einem beliebigen Text-Editor ein, und speichern Sie die Datei als Textdatei mit dem Namen Factorial.cs.Paste the following code into any text editor, and then save the file as a text file with the name 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. Öffnen Sie über den Bildschirm Starten oder das Menü Starten eine Visual Studio Developer-Eingabeaufforderung, und navigieren Sie dann zu dem Ordner, der die Datei enthält, die Sie gerade erstellt haben.From the Start screen or Start menu, open a Visual Studio Developer Command Prompt window, and then navigate to the folder that contains the file that you just created.

  3. Geben Sie den folgenden Befehl ein, um die Anwendung zu kompilieren.Enter the following command to compile the application.

    csc Factorial.cs

    Wenn die Anwendung keine Kompilierungsfehler aufweist, wird eine ausführbare Datei mit dem Namen Factorial.exe erstellt.If your application has no compilation errors, an executable file that's named Factorial.exe is created.

  4. Geben Sie den folgenden Befehl ein, um die Fakultät von 3 zu berechnen:Enter the following command to calculate the factorial of 3:

    Factorial 3

  5. Durch den Befehl wird die folgende Ausgabe generiert: The factorial of 3 is 6.The command produces this output: The factorial of 3 is 6.

Hinweis

Wenn Sie eine Anwendung in Visual Studio ausführen, können Sie Befehlszeilenargumente auf der Seite „Debuggen“, Projekt-Designer angeben.When running an application in Visual Studio, you can specify command-line arguments in the Debug Page, Project Designer.

Weitere Beispiele zur Verwendung von Befehlszeilenargumenten finden Sie unter Vorgehensweise: Erstellen und Verwenden von Assemblys über die Befehlszeile.For more examples about how to use command-line arguments, see How to: Create and Use Assemblies Using the Command Line.

Siehe auchSee Also

System.Environment
C#-ProgrammierhandbuchC# Programming Guide
Main() und BefehlszeilenargumenteMain() and Command-Line Arguments
Gewusst wie: Anzeigen von BefehlszeilenargumentenHow to: Display Command Line Arguments
Gewusst wie: Zugreifen auf Befehlszeilenargumente mithilfe von foreachHow to: Access Command-Line Arguments Using foreach
Main()-RückgabewerteMain() Return Values
KlassenClasses