Befehlszeilenargumente (C#-Programmierhandbuch)

Sie können Argumente an die Main- Methode senden, indem Sie die Methode auf eine der folgenden Arten definieren:

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. Im vom Windows Forms-Designer generierten Code wird ein Main ohne einen Eingabeparameter erstellt. Sie können auch <xref:System.Environment.CommandLine%2A?displayProperty=fullName> oder <xref:System.Environment.GetCommandLineArgs%2A?displayProperty=fullName> verwenden, um von einem beliebigen Punkt in einer Konsolen- oder Windows-Anwendung auf die Befehlszeilenargumente zuzugreifen.

Der Parameter der Main-Methode ist ein <xref:System.String>-Array, das die Befehlszeilenargumente darstellt. Normalerweise bestimmen Sie, ob Argumente vorhanden sind, indem Sie z. B. die Length-Eigenschaft testen:

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

Sie können die Zeichenfolgenargumente auch mit der <xref:System.Convert>-Klasse oder der Parse-Methode in numerische Typen konvertieren. Die folgende Anweisung konvertiert z. B. string mithilfe der long-Methode in eine <xref:System.Int64.Parse%2A>-Zahl:

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

Sie können auch den C#-Typ long verwenden, der als Alias für Int64 fungiert:

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

Sie können für dieselbe Aufgabe auch die Convert-Klassenmethode ToInt64 verwenden:

long num = Convert.ToInt64(s);  

Weitere Informationen finden Sie unter <xref:System.Int64.Parse%2A> und <xref:System.Convert>.

Beispiel

Im folgenden Beispiel wird gezeigt, wie Befehlszeilenargumente in einer Konsolenanwendung verwendet werden. Die Anwendung übernimmt zur Laufzeit ein Argument, konvertiert das Argument in eine ganze Zahl und berechnet die Fakultät der Zahl. Wenn keine Argumente übergeben werden, erzeugt die Anwendung eine Meldung, in der die richtige Verwendung des Programms erläutert wird.

Führen Sie die folgenden Schritte aus, um die Anwendung von einer Eingabeaufforderung aus zu kompilieren und auszuführen:

  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.

    //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.

  3. Geben Sie den folgenden Befehl ein, um die Anwendung zu kompilieren.

    csc Factorial.cs

    Wenn die Anwendung keine Kompilierungsfehler aufweist, wird eine ausführbare Datei mit dem Namen Factorial.exe erstellt.

  4. Geben Sie den folgenden Befehl ein, um die Fakultät von 3 zu berechnen:

    Factorial 3

  5. Durch den Befehl wird die folgende Ausgabe generiert: 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.

Weitere Beispiele zur Verwendung von Befehlszeilenargumenten finden Sie unter Vorgehensweise: Erstellen und Verwenden von Assemblys über die Befehlszeile.

Siehe auch

<xref:System.Environment?displayProperty=fullName>
C#-Programmierhandbuch
Main() und Befehlszeilenargumente
Vorgehensweise: Anzeigen von Befehlszeilenargumenten
Vorgehensweise: Zugreifen auf Befehlszeilenargumente mithilfe von foreach
Main()-Rückgabewerte
Klassen