Parameterübergabe bei Konsolenanwendungen
Wer des Öfteren Konsolenanwendungen entwickelt, der kennt die Problematik: Man kann zwar Argumente und Parameter an die Applikation übergeben, allerdings sind diese nicht wirklich sinnvoll gegliedert beziehungsweise getrennt. Ich benutze hier immer gerne eine kleine Methode, in der man die Ausgabe für bestimmte Parameter handlen kann und mit einem Einzeiler die entsprechenden Werte für jeden Parameter zurückgeliefert bekommt.
Prinzipiell muss nur das Argument-Array der Main-Methode, sowie der gewünschte Parametername übergeben werden. Die Methode schleift dann über alle übergebenen Parameter und gruppiert diese nach Parameternamen und Parameterwerten. Übergeben wir also einen Parameternamen erhalten wir als Return-Wert den Parameterwert:
private static string GetArg(string[] args, string sArgName)
{
for (int i = 0; i < args.Length; i++)
{
if (args[i] == "-" + sArgName && args.Length >= i)
{
return args[i + 1];
}
if ((args[i] == "/?") || (args[i] == "/help") || (args[i] == ""))
{
return "";
}
}
return "";
}
Hier ein Beispiel für die Anwendung der Methode:
GetArg(args, "parm");
Diese Zeile gibt uns den Wert für den Parameter “parm” zurück. Voraussetzung hierbei ist, dass wir Parameter folgendermaßen an unsere Applikation übergeben:
programm.exe -parm1 wert1 -parm2 wert2 -parm3 wert3
Diese Art und Weise Parameter an eine Anwendung zu übergeben, wurde in den letzten Jahren zu einer Art Standard. Natürlich kann das Snippet sehr leicht angepasst werden, so dass auch optisch andere Übergaben möglich sind.