PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Parameterübergabe beim Aufruf eines C#-Progs



Jor
25-11-2005, 13:27
Hallo *,

ich möchte meiner Anwendung beim Aufruf (Start des eigentlichen Programms) einen Parameter ( oder besser eine Stringliste) über geben, ich benutze C# und habe auch einen entsprechenden Konstruktor zusätzlich erstellt. Aber dieser wird irgend wie nicht beachtet. Man könnte sich auch ein "Hallo World"-Prog vorstellen, das ich z. B. mit "C:\HalloWorld.exe Willi" aufrufe, und es dann auch "Hallo Willi" anzeigt, ohne Parameter zeigt es "Hallo World" an.
Kann mir einer sagen was ich falsch mache, oder wie ich das besser machen kann?
Danke.

pucki
25-11-2005, 18:53
na ja, vielleicht postest du mal das codefragment wo du das ganze umsetzt ....

gruesse ...

Jor
26-11-2005, 14:17
hi pucki,

anbei den Konstruktor, den ich zum Standard-Konstruktor hinzugefügt habe.
public Base( String Wert )
{
//
// Erforderlich für Windows Form-Designerunterstützung
//
InitializeComponent();

//
// TODO: Konstruktorcode hinter dem InitializeComponent-Aufruf hinzufügen
//
übergabe = Wert;
}
Die Variable (übergabe) habe ich global als String erzeugt.

BeS
26-11-2005, 17:45
Hallo,
du weißt aber schon, dass die Komandozeilenparamenter an Main() übergeben werden...
Der Entscheidende Code muß also so aussehen:


class Hello
{
static void Main(string[] args) {
System.Console.WriteLine("Hello " + args[0]);
}
}

Jor
27-11-2005, 16:05
@BeS,
vielen Dank, werde dieses sofort ausprobieren! :)

Jor
28-11-2005, 14:40
hallo nochmal,

die parameterübergabe funzt in dem fall aber nur in einer konsolenanwendung,
ich möchte aber, wie unten beschrieben, eine windowsanwendung erstellen.
Also bin ich noch keinen schritt weiter. Auch wäre prima, wenn mir jemand schreibt, wie ich meine anwednung mit parameter im debugermodus starten kann.

BeS
28-11-2005, 15:54
Hallo,
ich habe keine Ahnung von window.forms. Aber die Parameterübergabe sollte nichts damit zu tun haben was du in deinem Programm später alles machst, als z.B. ob du eine GUI zeichnest oder nicht.

Mit Gtk# könnte das Beispiel so aussehen:


class HelloGUI {
static void Main (string[] args) {
new HelloGUI(((args.Length > 0) ? args[0] : "fremder"));
}

public HelloGUI(string name) {
Gtk.Application.Init();
Gtk.Window win = new Gtk.Window("HelloGUI");
Gtk.Label label = new Gtk.Label("Hallo " + name);
win.Add(label);
win.ShowAll();
Gtk.Application.Run();
}
}


mit windows.forms sollte es vom Prinzip ähnlich gehen.

PS: Es wäre nicht schlecht, wenn du auch lauffähigen code posten könntest. Damit kann man leicher nachvollziehen was du vielleicht falsch machst.

Jor
28-11-2005, 16:50
Aha, ich vermute ich weis wo ich den Fehler gemacht habe, dein Script lässt mich dieses jedenfalls vermuten. Wenn ich schaffe, probiere ich es gleich aus, wenn nicht, schreibe ich dir morgen früh ob ich weiter gekommen bin. Auf jeden Fall vielen Dank! :)

Jor
28-11-2005, 17:11
:) :) :) :)
Ich habe dein Script von der Struktur her übernommen, es funzt!!!
Danke!