我在某种程度上是C#的初学者,基本上我试图制作一个简单的程序,让你点击按钮随机化你的角色的种族和阶级。令人惊讶的是,实际设置随机数发生器并不是问题所在。我成功地创建了程序但是为了使它更复杂,我添加了一个显示该随机化示例的图片框。基本上我把它设置成这样:
private void button1_Click(object sender, EventArgs e)
{
var r = new Random();
var classText = r.Next(1, 7);
if (classText == 1)
{
textBox1.Text = "Mage";
}
else if (classText == 2)
{
textBox1.Text = "Rogue";
}
else if (classText == 3)
{
textBox1.Text = "Ranger";
}
}
private void button2_Click_1(object sender, EventArgs e)
{
var r2 = new Random();
var raceText = r2.Next(1, 10);
if (raceText == 1)
{
textBox2.Text = "Human";
}
else if (raceText == 2)
{
textBox2.Text = "Dwarf";
}
else if (raceText == 3)
{
textBox2.Text = "Elf";
}
}
if(classText == 1 && raceText == 1)
{
pictureBox2.ImageLocation = whatever;
}
else if (classText == 1 && raceText == 2)
{
textBox2.Text = "Elf";
}
else if (classText == 2 && raceText == 3)
{
pictureBox2.ImageLocation = whatever;
}
etc........
然而,最后一个if语句不起作用,因为我使用的变量在各自的函数之外是不可访问的。我需要一种能够在if语句中使用这些变量的方法,以便我可以告诉它放在哪个图片中。无论如何回归'像python中的变量或者有更好的方法吗?
答案 0 :(得分:2)
这完全是关于范围的,你应该阅读一下。基本上,变量仅存在于其声明的块内。如果在方法中声明变量,那么它只存在于该方法中。如果您希望能够在方法之外使用变量,则必须在该方法之外声明它。如果你想在多个方法中使用相同的变量,那么它必须在所有方法之外声明,即在类级别。