C#乘以包含Random.next实例的方法

时间:2013-06-20 03:31:43

标签: c# methods random

我正在运行这个类和方法

public class DiceRoll
{
    static Random _r =new Random();

    public int Random6()
    {
        int n = _r.Next(1, 7);
        return n;
    }
}

我正试图在另一个类中的if语句中使用它,如下所示:

if (input == "d6")
{
    int dice = diceRoll.Random6();
    Console.WriteLine(dice);
}

我的问题是这个。如果我使用这样的乘数调用diceRoll.Random6(); diceRoll.Random6() * 2;它是创建两个随机数并添加它们还是仅仅取一个并将其乘以2?

我认为这可能是后者,但我只是想在进入复杂的编程之前进行检查。

如果是后者,有一种方法可以让我的程序调用{​​{1}}的多个实例而不会Random6这样可以做两次但是如果我想这样做四到六次它会变得不优雅。

提前致谢。

2 个答案:

答案 0 :(得分:3)

它只生成1个随机数,然后将其乘以2

你可以在一个循环中完成它,或者如果你想要花哨

var sum = Enumerable.Range(1, 6).Sum(x => diceRoll.Random6())

你可能想要分解成......

var rolls = Enumerable.Range(1, 6).Select(x => diceRoll.Random6()).ToList();
var sumOfRolls = rolls.Sum();

通过这种方式,您可以得到每个卷的总和和列表。

答案 1 :(得分:3)

从循环中调用方法

int result = 0;

    for(int i = 0; i < 10; i++)
    {
      result += Random6();
    }