C#和一般编程都很新。我遇到了这个问题,我真的不知道如何解决它。首先,这里是代码:
它在" if" random1在当前上下文中不存在的代码的一部分。是的,我知道随机只存在于Button_click部分中,因为它位于括号之间。该代码应该选择0到20之间的随机数而不显示它,以便用户必须猜测它。如果用户输入错误,则会显示提示,说明数字是太高还是太低。我该如何解决这个问题?感谢
编辑:看起来我太模糊了,但你的答案很好。这是完整的代码:public void Button_Click(object sender, RoutedEventArgs e) //random
{
Random chiffrealeatoire = new Random();
int random1 = (chiffrealeatoire.Next(0, 20));
}
private void Button_Click_1(object sender, RoutedEventArgs e) //quit
{
Application.Current.Shutdown();
}
private void Button_Click_2(object sender, RoutedEventArgs e) //veri
{
}
public void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (BoiteChiffre.Text < random1)
{
MessageBox.Show("Too low");
}
if (BoiteChiffre.Text > random1)
{
MessageBox.Show("Too high");
}
else
{
MessageBox.Show("Congratulations");
}
}
用户应该在文本框中书写
答案 0 :(得分:3)
你已经关闭了你的方法并省略了if语句! random1
变量在您的方法中定义和声明,因此它不存在于其外部。请移动方法的结束括号以包含if语句。
此外,您的两个if
语句应该与else if链接在一起。您已经声明了两个单独的if语句,因此只有其中一个将具有else。没错,只需更好地练习以下内容。
基本结构:
public void Button_Click(object sender, RoutedEventArgs e) {
...
int random1
if(<random1) {
random1
} else if(>random1) {
...
} else {
...
}
} // <- method closing bracket
编辑:由于您已严格修改了所提供的代码,因此我必须更新我的解释。
您的问题与变量范围有关。方法中定义的变量具有该方法的局部范围。它无法访问,甚至不存在于其之外。您应该在所有方法中声明您的方法,以便您可以使用多种方法。
基本结构:
int random1
public void methodA() {
random1 = whatever
}
public void methodB() {
if(random1) {
...
}
}
答案 1 :(得分:0)
请尝试以下代码段。您需要在同一方法中声明变量。
public void Button_Click(object sender, RoutedEventArgs e) //random
{
Random chiffrealeatoire = new Random();
int random1 = (chiffrealeatoire.Next(0, 20));
if (BoiteChiffre.Text < random1)
{
MessageBox.Show("Too low");
}
if (BoiteChiffre.Text > random1)
{
MessageBox.Show("Too high");
}
else
{
MessageBox.Show("Congratulations");
}
}