我的变量说它从未使用但它是?

时间:2017-07-22 17:19:31

标签: c#

我刚开始使用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);
    }

它告诉我'打'不会被使用,但它不是吗?代码不起作用,我不确定发生了什么,有什么帮助吗?

2 个答案:

答案 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概念。