C# globale und lokale Variablen

estre

Commander
Registriert
Dez. 2005
Beiträge
3.006
Hallo zusammen,

ich habe mal wieder ein Problem bei dem ich Eure Hilfe benötige:

und zwar habe ich 3 Textfelder und einen Button:

Klickt man nun auf den Button, dann soll der Inhalt der Textfelder jeweils in einer Variablen gespeichert werden. So weit so gut:

private void buttonEingabeOK_Click(object sender, RoutedEventArgs e)
{
//Variablen füllen
string name = textBox1.Text;
string vorname = textBox2.Text;
string benutzerName = textBox3.Text;
etc.
}

Nun möchte ich die Variablem aber auch in anderen Methoden (z.B. bei anderen Buttons) verwenden und diese nicht jedes Mal neu initialisieren müssen.

D.h. mir stellt sich nun die Frage wie ich angesichts meiner ganzen Button.Click – Methoden bestimmte Variablem global verfügbar machen kann -.-

Vielen Dank für Eure Hilfe!

Grüße
 
Du musst die Variablen einfach außerhalb der Funktion deklarieren. Dann sind sie in der kompletten Form zugänglich. Aber nicht über Formgrenzen hinweg! Das geht bei c# nur noch über Umwege.

also müsste es dann ungefähr so aussehen: sagen wir Deine Buttons sind in Form1:

Code:
public partial class Form1 : Form
{
	string name;
	string vorname;
	string benutzerName;
	
	private void buttonEingabeOK_Click(object sender, RoutedEventArgs e)
	{
		//Variablen füllen
		name = textBox1.Text;
		vorname = textBox2.Text;
		benutzerName = textBox3.Text;
		 etc.
	}
 }
 
Ist schon eine rechte Anfägner frage, aber bitte .....

Deine Dialog classe sollte Eigenschaften haben in der sie Textfelder speichert.
und dann noch Zugriffsfunktionen (in C# setter/getter) um drauf zuzugreifen
Bsp:
Code:
private string _name;

public string Name
{
    get { return this._name; }
    set { this._name = value; }
}
 
Hey,

vielen Dank für die Hilfe, es klappt nun !

Grüße

Ergänzung vom 29.11.2011 06:56 Uhr: Moin zusammen,

so ganz habe ich es doch noch nicht verstanden.

die Variablen außerhalb der Klasse zu initialisieren bringt mich leider nur bedingt weiter.

Gehen wir mal von folgendem Quellcode aus:

Hellsfoul schrieb:
Code:
public partial class Form1 : Form
{
	string name;
	string vorname;
	string benutzerName;
	
	private void buttonEingabeOK_Click(object sender, RoutedEventArgs e)
	{
		//Variablen füllen
		name = textBox1.Text;
		vorname = textBox2.Text;
		benutzerName = textBox3.Text;
		 etc.
	}
 }

Angenommen ich habe jetzt noch eine ButtonXYZ_Click-Methode und möchte die Variablen aus der o.g. ButtonEingabeOK_click-Methode weiter verarbeiten.
Wie muss ich das genau anstellen um darauf zugreifen zu können ?

das mit den Gettern und Settern habe ich nicht ganz verstanden, damit kann man doch nur Instanzvariablen abfragen bzw. ändern ?!

Herzlichen Dank für die Hilfe!

Viele Grüße
 
Zuletzt bearbeitet:
sofern die textbox erst nach start befüllt werden, wirst du genauso neu zuweisen müssen.

du könntest dir allerdings z.B. eine klasse definieren und und diese zuweisung in den konstruktor packen,
sodass du nur das objekt erstellst und damit automatisch auch die Zuweisung erfolgt bei Erstellung.

sofern die textboxen schon inhalte enthalten, kannst du die zuweisung der werte direkt bei der definition machen, dann sollte sie auch über buttonshinweg vorhanden sein.
 
Zuletzt bearbeitet:
Zurück
Oben