C# Wpf Variable überschreiben?
Wie kann ich die Variable "zaehler" überschreiben? Immer wenn ich den Button drücke, beginnt das Programm ja wieder von vorne, also wird auch die Variable wieder auf 0 gesetzt.
Daher wird bei "Versuche" auch immer nur 1 angezeigt.
Wie kann ich jetzt machen, dass die Variable, jedes Mal wenn ich wieder auf den "Eingabe Knopf" drücke, bei 1, 2, 3, 4... anfängt weiter zu zählen?
Ich habe es bereits mit einer While-Schleife und mit
Anfang:
goto Anfang;
probiert.
Hoffe Ihr könnt mir helfen:)
Die Oberfläche:
Der Code:
private void CmdEingabe_Click(object sender, EventArgs e)
{
int zaehler = 0;
if (TxtEingabe.Text == "123Penis")
{
LblStatus.Text = "Zugriff erlaubt";
}
else
{
LblStatus.Text = "Zugriff verweigert";
zaehler++;
LblAnzahl.Text = Convert.ToString(zaehler);
}
}
3 Antworten
Anhand deiner Frage und deinem Code sehe ich, dass du noch Anfänger bist. In der Hinsicht würde ich dir dazu raten, zunächst mit Konsolenapplikationen zu beginnen, um dich besser auf die anfänglichen Grundlagen konzentrieren zu können. GUI-Programmierung - und gerade WPF setzen feste Kenntnisse der OOP voraus. Der richtige Gebrauch von WPF wird dir später womöglich sogar noch mehr Umstellung abverlangen, wenn du dir schon jetzt nicht so gute Praktiken aneignest.
Um den Zähler bei jedem Klick zu erhöhen, muss die Zählervariable in einem globalen Kontext zu der Methode stehen, also bspw. als Feld in der Klasse angelegt werden.
Das Schlüsselwort goto wird in Kombination mit einem Label (oder in switch-case) eingesetzt, sollte sich dabei eher auf die Anwendungsfälle beschränken, die auch in der Dokumentation gezeigt werden. Für Wiederholungen von Code-Abschnitten solltest du Schleifen und Methodenaufrufe einsetzen.
Deine variable Täler existiert nur innerhalb dieser Methode.
Du musst sie in der Klasse definieren.
Die Methode steht ja in einer Klasse. (Mit anderen Methoden konstrukto usw.
Wenn du Int32 Zaehler = 0 über die Methode oder drunter etc. Schreibst dann dürfte das gehen.
Dass sollte eigentlich nicht der Fall sein. Wie sieht der Rest der Datei aus? Kannstemal den kompletten Code Posten.
Der Code: private void CmdEingabe_Click(object sender, EventArgs e)
{
int zaehler = 0;
if (TxtEingabe.Text == "Hallo")
{
LblStatus.Text = "Zugriff erlaubt";
}
else
{
LblStatus.Text = "Zugriff verweigert";
zaehler++;
LblAnzahl.Text = Convert.ToString(zaehler);
}
}

Es wäre such gut, bei erfolgreichen Einloggrn den Zähler wieder auf 0 zu setzen.
Zaehler = 0;
Da kommt diese Fehlermeldung:
Fehler CS0103 Der Name "zaehler" ist im aktuellen Kontext nicht vorhanden.