如何从int中取走一个值? C#

时间:2013-04-22 21:16:16

标签: c# random int

问题出在第3行,我需要取一个介于1-3之间的数字并保存该值,以便更多可以带走。

Random randomhit = new Random();
int randomNumberhit = randomhit.Next(1, 4);
int life = life - randomNumberhit;
Console.WriteLine(life);

有什么想法吗?我完全错了吗?

3 个答案:

答案 0 :(得分:4)

您要声明变量life并为其指定值life - randomhit。如果life还没有值,你怎么知道计算结果?

尝试这样的事情:

int life = 100;
...
Random randomhit = new Random();
int randomNumberhit = randomhit.Next(1, 4);
life = life - randomNumberhit;
Console.WriteLine(life);

但是,您可能希望改为使用life类变量。像这样的东西会起作用:

public class MyGuy
{

    public int Life { get; set; }

    public MyGuy()
    {
        this.Life = 100; // starting life
    }

    public void Hit()
    {
        Random randomhit = new Random();
        int randomNumberhit = randomhit.Next(1, 4);
        this.Life -= randomNumberhit;
        Console.WriteLine(this.Life);
    }
}

答案 1 :(得分:2)

生活需要被初始化为某种东西

int life = 100; //Or some other value
Random randomhit = new Random();
int randomNumberhit = randomhit.Next(1, 4);
life = life - randomNumberhit;
Console.WriteLine(life);

另请注意,重新分配生命(life = life - randomNumberhit;)时,不需要int。

答案 2 :(得分:0)

您正在执行life-randomNumberhit,但此时您的变量life尚不存在。您应该将life变量初始化为您想要的任何值:

Random randomhit = new Random();
int randomNumberhit = randomhit.Next(1, 4);
int life = 0; // for instance, 0
Console.WriteLine(life - randomNumberhit);