2 Stimmen

C#: Wie kann man in C# Argumente/Parameter in Konsolenanwendungen lesen?

Was ist die geeignete Methode, um Argumente aus der Befehlszeile zu lesen? Ich habe von der Verwendung von Strings args[] gelesen, aber ich kann nicht kommen, um das Konzept zu begreifen, wie man es richtig zu tun.

Beispiel Befehle:

/Tier Hund -c weiß -s mittel

/car civic -c grün -y 1999

Was wäre die angemessene Art und Weise zu lesen,

  1. /derBefehl

  2. alle anderen Argumente mit Buchstaben

für eine einfachere Handhabung? Oder gibt es generell eine sauberere Methode als die Verwendung von Args, um dies zu tun? Immer noch nicht sicher, wie args verwendet wird.

    static void Main(string[] args)
    {

        Console.WriteLine("Welcome To The Application");

        Console.Write("Program> "); // Expecting something such as: /animal dog -c brown -s medium
        string sInput = Console.ReadLine();

        // What would be an appropriate method to read 1. /thecommand then based on the command
        // maybe using switch, expect the arguments like -c brown -s medium or -c green -y 1999
        // and display them into the console?

        // if /animal is detected, display what would be:
        // Console.WriteLine("Animal: dog");
        // Console.WriteLine("Color: brown");
        // Console.WriteLine("Size: medium");

        // if /car is detected, display what would be:
        // Console.WriteLine("Car: civic");
        // Console.WriteLine("Color: green");
        // Console.WriteLine("Year: 1999");

    }

1voto

Marc Gravell Punkte 970173

Das hängt von der Komplexität ab. Wenn Sie nur ein paar Optionen haben, würde ein einfaches for/switch genügen. Wenn die Optionen komplex sind, möchten Sie vielleicht eine Klasse, mit der Sie "-c" auf "Farbe" usw. abbilden können. Beispiele (nur die ersten 2 von Google; keine spezifische Empfehlung) für diesen zweiten Ansatz sind aquí y aquí .

1voto

Anteru Punkte 18671

Wenn Sie einen schönen Kommandozeilenparser suchen, sollten Sie die Kommandozeilenparser-Bibliothek bei CodePlex ausprobieren -- http://www.codeplex.com/commandline Es ist ziemlich einfach, enthält Unit-Tests und deckt die wichtigsten Anwendungsfälle ab.

Eine weitere Option ist NDesk - http://www.ndesk.org/Options - das der Nachfolger der Kommandozeilen-Parsing-Utilities in Mono sein soll.

0voto

Logicalmind Punkte 3296

Wie ich sehe, haben Sie eine Reihe von Fragen im Themenbereich Konsolenanwendungen gestellt. Um diese Frage zu beantworten und möglicherweise auch andere, die Sie haben, können Sie sich diese Bibliothek ansehen, die für das Schreiben von Konsolenanwendungen gedacht ist. Sie enthält Befehlszeilen-Parser

NConsoler

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X