Hallo zusammen,
im Moment schreibe ich ein Programm das über die Kommandozeile bis zu 10 Parameter bekommt. Meine Frage ist jetzt wie lege ich die am geschicktesten ab um dann später an beliebiger Stelle vom Programm darauf zugreifen zu können?
Wie ich die Kommandozeile verarbeiten kann weiß ich schon, mir geht es nur darum wie die Variablen am geschicktesten anzulegen sind.
Wenn ich das richtig im Kopf habe sind Globale Variablen nicht gern gesehen, aber wie macht man es dann "richtig"?
In einem älteren Programm habe ich das so gemacht, aber ich weiß nicht ob das so gut ist:
Es gibt in der Main lokale Variablen die dann per ref an die Routine übergeben werden.
AnalyzeCmd(args, ref WorkEnv, ref ReReadData);
[highlight=c#] static private void AnalyzeCmd(string[] cmdargs, ref string WorkEnv, ref bool ReReadData)
{
int cnt = 0;
string arg = "";
// Defaultwerte festlegen
WorkEnv = "DISPO";
ReReadData = false;
for (cnt = 0; cnt < cmdargs.Length; cnt++)
{
arg = cmdargs[cnt];
switch (arg.ToLower())
{
case "-env":
WorkEnv = cmdargs[cnt + 1];
cnt++;
break;
case "-rereaddata":
ReReadData = true;
break;
case "?":
case "-?":
case "/?":
case "-h":
case "/h":
// Hilfenachricht anzeigen
string OutText = "";
OutText = "Aufruf mit: \"" + System.Windows.Forms.Application.ExecutablePath + "\" [-env DBEnvironment] [-ReReadData]\n";
OutText = OutText + "-env: DB Umgebung die benutzt werden soll (DISPO, TUDISPO oder DEDISPO)\n";
OutText = OutText + "-ReReadData: bestimmte Daten erneut lesen\n";
OutText = OutText.Replace(System.Windows.Forms.Application.S tartupPath + @"\", "");
Console.WriteLine(OutText);
break;
//
}
}
}
[/highlight]
Gruß Stephan
im Moment schreibe ich ein Programm das über die Kommandozeile bis zu 10 Parameter bekommt. Meine Frage ist jetzt wie lege ich die am geschicktesten ab um dann später an beliebiger Stelle vom Programm darauf zugreifen zu können?
Wie ich die Kommandozeile verarbeiten kann weiß ich schon, mir geht es nur darum wie die Variablen am geschicktesten anzulegen sind.
Wenn ich das richtig im Kopf habe sind Globale Variablen nicht gern gesehen, aber wie macht man es dann "richtig"?
In einem älteren Programm habe ich das so gemacht, aber ich weiß nicht ob das so gut ist:
Es gibt in der Main lokale Variablen die dann per ref an die Routine übergeben werden.
AnalyzeCmd(args, ref WorkEnv, ref ReReadData);
[highlight=c#] static private void AnalyzeCmd(string[] cmdargs, ref string WorkEnv, ref bool ReReadData)
{
int cnt = 0;
string arg = "";
// Defaultwerte festlegen
WorkEnv = "DISPO";
ReReadData = false;
for (cnt = 0; cnt < cmdargs.Length; cnt++)
{
arg = cmdargs[cnt];
switch (arg.ToLower())
{
case "-env":
WorkEnv = cmdargs[cnt + 1];
cnt++;
break;
case "-rereaddata":
ReReadData = true;
break;
case "?":
case "-?":
case "/?":
case "-h":
case "/h":
// Hilfenachricht anzeigen
string OutText = "";
OutText = "Aufruf mit: \"" + System.Windows.Forms.Application.ExecutablePath + "\" [-env DBEnvironment] [-ReReadData]\n";
OutText = OutText + "-env: DB Umgebung die benutzt werden soll (DISPO, TUDISPO oder DEDISPO)\n";
OutText = OutText + "-ReReadData: bestimmte Daten erneut lesen\n";
OutText = OutText.Replace(System.Windows.Forms.Application.S tartupPath + @"\", "");
Console.WriteLine(OutText);
break;
//
}
}
}
[/highlight]
Gruß Stephan
Comment