Variable übergabe - Denk Fehler - Lösung?


Fridulin

Erfahrenes Mitglied
Hallo,

Ich habe folgendes Problem, wobei ich hoffe einer von euch kann mir Helfen. Also ich habe 2 Buttons Funktionen (senden & dateihinz) und eine void absenden Funktion. Diese Absenden Funktion ist meine Hauptfunktion. Sobald ich den Buttund dateihinz betätige wird mittels OpenFileDialog der Pfad + Dateiname der Variable datei gesetzt (und den sende string auf nicht gesetzt) und meine Hauptfunktion absenden aufgerufen, einschließlich der Parameter übergabe.
Code:
dateibrowser.ShowDialog();
string datei = dateibrowser.FileName;
string sende = "nicht";
absenden(datei, sende);
Das Funktioniert auch alles Bestens. Nun kommt der Knackpunkt! Wenn ich auf den sende Button drücke, soll er rein theoretisch, die Variable sende auf "ja" setzten und die string datei Variable ist für diesen Prozess egal. Aber weil ich von der senden Funktion (button) wieder in die absenden Funktion gehen muß, muß ich die string Variable Datei mit irgendetwas "füttern" sonst spuckt er mir ein Fehler aus. In der absenden Funktion ist nachher eine If abfrage ob sende auf ja oder auf nein gesetzt würde, erst dann wird das abgesendet. Deswegen muß sie gesetzt werden.
Code:
string sende = "ja";
string datei = null; // < darum geht es
absenden(datei, sende);
Wenn ich jetzt wieder zur absenden Funktion Springe wird die String Variable datei mit den Inhalt "null" gefüllt, aber ich brauche ja den Pfad. Rein Theoretisch könnte ich auch es in einer Datei abspeichern, aber das ist ja ein wenigs zu umständlich.

Vielleicht hat mein Problem ja einer verstanden und kann mir eine Lösung für mein Problem sagen

Grüße und vielen Dank

 

Fridulin

Erfahrenes Mitglied
--- Edit ---

Ich dachte eben ich hätte eine Lösung mit:
Code:
string datei2 = null;
if(datei != null)
{
datei2 = datei;
textBox4.Text = datei2;
}
Aber so wird die Datei2 ja auch auf null gleich wieder gesetzt und ich stehe wieder vor dem gleichen Problem.

Grüße
 
Zuletzt bearbeitet:

LieberNet

Mitglied
Hi Fridulin!
Also soweit ich Deine Frage verstanden habe, sollte es eigentlich kein Problem sein, wenn Du Deinen Übergabeparameter datei mit NULL übergibst. Es darf nur in Deiner Absenden Funktion nicht darauf zugegriffen werden.
Ich würde also eher mal schauen, warum Du einen Fehler bei NULL bekommst.
Vielleicht kannst Du auch den Code der Funktion absenden mal posten, dann kann man sich mal ein Bild von dem Ganzen machen.

Ciao
LieberNet
 

Fridulin

Erfahrenes Mitglied
Hallo, danke für deine Antwort. Vor paar Minuten hatte ich ein ähnliches Problem und bin da zufällig auf die Lösung gekommen. Man kann auf einen OpenFileDialog wobei es sich um der Funktion DateiHinz geht überall drauf zugreifen. Das heißt ich muß die Auswahl bzw. eingabe garnicht mit durch die Funktionen übergeben.
Code:
string datei = dateibrowser.FileName;
Da kann ich drauf zugreifen, auch erst da wo ich es brauche. Ich dachte das währ wie mit normalen Variablen auf die man nur in der gleichen Funktion zugreifen kann.


Danke trotzdem für deine Hilfe

Grüße
 

Alexander Schuc

crazy-weasel
Fridulin hat gesagt.:
Da kann ich drauf zugreifen, auch erst da wo ich es brauche. Ich dachte das währ wie mit normalen Variablen auf die man nur in der gleichen Funktion zugreifen kann.
Es ist doch ganz normal. In dem Scope, in dem die Variable existiert kannst auch darauf zugreifen. Dein "DateiBrowser" wird ein Klassenmember sein, und existiert deswegen auch in jedem Bereich deiner Klasse.

Basics lernen!
 

Fridulin

Erfahrenes Mitglied
Ja das wußte ich eben leider noch nicht und hatte ich auch versäumt auzuprobieren. Bin von cpp wo ich nur in DOS Programmiert habe wie ich es auch halbwegs gelernt hatte umgestiegen auf Net. Wie du schon sagtest ich sollte wirklich mich mal auf ein paar Grundlegendes konzentrieren und dies (richtig) erlenen....Da ich bei .Net learning by doing gemacht habe bzw. mache habe ich dies leider versäumt.

Grüße und Danke