我刚开始使用C#并且在过去一周左右只使用了控制台。我现在已经开始使用Visual Studio IDE应用程序构建器,并且遇到了一个非常基本的程序问题。
private void button1_Click(object sender, EventArgs e)
{
Random rnd = new Random();
int chance = rnd.Next(1, 10);
if (chance < 8)
{
bool hit = true;
}
else
{
bool hit = false;
}
if (hit == true)
{
mhealth -= damage;
textBox1.Text = Convert.ToString(mhealth);
}
它告诉我'打'不会被使用,但它不是吗?代码不起作用,我不确定发生了什么,有什么帮助吗?
答案 0 :(得分:0)
您需要在bool hit
声明之外声明if-else
。请在下面找到代码:
Random rnd = new Random();
int chance = rnd.Next(1, 10);
bool hit;
if (chance < 8)
{
hit = true;
}
else
{
hit = false;
}
if (hit == true)
{
mhealth -= damage;
textBox1.Text = Convert.ToString(mhealth);
}
OR
Random rnd = new Random();
int chance = rnd.Next(1, 10);
bool hit = (chance < 8);
if (hit)
{
mhealth -= damage;
textBox1.Text = Convert.ToString(mhealth);
}
答案 1 :(得分:0)
这是由于您的变量的范围。你在if {}代码块中声明命中(并且还在else块中再次阻塞。因为这样的命中在{}范围块之外是不可见/可访问的。要修复此声明,只需在启动if块之前命中一次。
在编程中回顾scope概念。