";变量“;在当前上下文中不存在
本文关键字:上下文 不存在 quot 变量 | 更新日期: 2023-09-27 18:25:03
对于C#和编程来说是非常新的。我遇到了这个问题,我真的不知道如何解决它。首先,这是代码:
它在代码的"if"部分表示random1在当前上下文中不存在。是的,我知道随机只存在于按钮点击部分中,因为它位于括号之间。该代码应该选择一个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");
}
}
用户应该在文本框
您已经关闭了方法并省略了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) {
...
}
}
请尝试下面的代码片段。您需要在同一方法内部声明变量。
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");
}
}