Entwickler-Ecke

Basistechnologien - Erweiterte Startparameter


tse_sharp - Di 29.09.09 17:23
Titel: Erweiterte Startparameter
Hallo Zusammen,
ich schreibe gerade an einer Konsolenanwendung, die als Service auf einem Server laufen soll.
Am Anfang gab es nur einen Parameter den ich über args[] ausgelesen habe. Nun möchte ich aber das Programm um mehrere Funktionen, fünf an der Zahl, erweitern. Jede Funktion hat seine eigenen Parameter. Konkret möchte ich folgendes:

meinprogramm.exe -p servername
meinprogramm.exe -k username datum

Die Namensgebung der Variablen einfach ignorieren ;) Möchte nur, dass die Anwendung von vornherein erkennt, um welche Funktion (p oder k) es sich handelt und dementsprechend die Variablen an die entsprechende Funktion oder Klasse im Programm weiter gibt. Hab leider nach mehrmaligem und multilingualem suchen nichts gefunden :-(

Vielen Dank für Eure Mühe.
tse_sharp


Christian S. - Di 29.09.09 17:27

Eine vorgefertigte Funktion gibt es dazu meines Wissens nicht, da musst Du selber die Argumente auswerten und dann entsprechend die richtigen Funktionen aufrufen.

Wäre aber mal eine interessante Idee, sowas zu automatisieren! :idea:


tse_sharp - Di 29.09.09 17:34

Hi,
Danke für die schnelle Antwort.
Das bedeutet, dass ich mittels case oder if Abfrage gehen muss um das Problem zu lösen?

Das war auch mein Ansatz, aber durch meine Amateurhaftigkeit habe ich es nur zu verschachtelten if-Abfragen gebracht, 3x ineinander... Gibt es vielleicht hierfür eine elegantere Möglichkeit? Hab mir heute Stundenlang den Kopf zerbrochen.

Danke und Gruß


Kha - Di 29.09.09 17:58

Ich weiß nicht, ob Lambdas schon etwas für dich sind, aber da gibt es auf jeden Fall etwas: Mono.Options [http://tirania.org/blog/archive/2008/Oct-14.html], eine Standalone-Version ist verlinkt.


tse_sharp - Di 29.09.09 20:51

user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
Ich weiß nicht, ob Lambdas schon etwas für dich sind...

Das sieht doch genauso aus, wie ich es gern hätte. Aber ich verstehe das richtig: Es ist nativ nicht implementierbar...


Kha - Di 29.09.09 21:30

"Nativ" :gruebel: ?


tse_sharp - Di 29.09.09 21:46

Ich meinte, ob es bei Visual C# auf anhieb funktioniert. Oder muss ich was zusätzlich installieren?!


Kha - Di 29.09.09 21:54

Achso. Hatte mich an dem "implementierbar" gestört, denn wenn es sowas schon im Framework gäbe, wäre ja nichts mehr zu implementieren sondern höchstens zu nutzen ;) . Und die verlinkte Source-Datei/Assembly herunterzuladen und einzubinden, fällt für mich immer noch unter "auf Anhieb" :zwinker: .


tse_sharp - Di 29.09.09 23:20

Alles klaro, dann bedanke ich mich für die rasche Hilfe. Aber eine Sache steht noch aus: Wie kriege ich nun diese Klasse eingebunden. Referenzen hinzufügen ist mir klar, aber den Schritt davor versteh ich nicht.

Danke!