C#

cadplayer

Newbie
Registriert
Mai 2012
Beiträge
3
Zunächst bin ich blutiger Anfänger mit C#
Ich hätte eine Frage zu öffentlichen Variablen.
Ich möchte gern eine Zufallszahl mit dem Button "Erzeuge" generieren
anschl. möchte ich mit dem Button "Prüfen" kontrollieren ob die eingegebene Zahl der Zufallszahl entspricht. Was micht jezt wundert warum die Zufallszahl nicht übernommen wird sondern immernur "0" deklariert wird.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ZahlenRaten
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

Random r = new Random();
private int z;

private void cmdErzeugen_Click(object sender, EventArgs e)
{
int z;
z = r.Next(1, 100);
}

private void cmdPrüfen_Click(object sender, EventArgs e)
{
int w;
w = Convert.ToInt16(txtE.Text);

if (w < z)
lblA.Text = "Wert ist zu klein! ";
else if (w > z)
lblA.Text = "Wert ist zu gross! ";
else lblA.Text = "Zahl ist korrekt";
}
}
}
 
Du setzt lediglich den Wert der lokalen Variablen 'z'. Das Instanzenfeld 'z' bleibt davon unberührt und behält den Anfangswert '0'. Die lokale Variable ist mithin nicht gewünscht.
 
Wie kann ich dann die Variable z öffentlich machen, dass sie zur Methode prüfen zu Verfügung steht, das habe ich in meiner Lektüre nicht finden können.
 
public statt private bentuzen oder einen getter / setter schreiben bzw { get; set }
 
Danke ich habe es jetzt so lösen können.

namespace ZahlenRaten
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

Random r = new Random();
private int z;

private void cmdErzeugen_Click(object sender, EventArgs e)
{
z = r.Next(1, 100);
}

private void cmdPrüfen_Click(object sender, EventArgs e)
{
int w;
w = Convert.ToInt16(txtE.Text);

if (z == -1)
lblA.Text = "Zuerst eine Zahl erzeugen";
else
{
if (w < z)
lblA.Text = "Wert ist zu klein! ";

else if (w > z)
lblA.Text = "Wert ist zu gross! ";

else lblA.Text = "Zahl ist korrekt";
}
}
}
}
 

Ähnliche Themen

W
  • Geschlossen
  • Frage
2 3
Antworten
45
Aufrufe
2.770
Antworten
10
Aufrufe
774
Antworten
10
Aufrufe
995
Zurück
Oben