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

本文关键字:方法 实例 next 包含 Random | 更新日期: 2023-09-27 18:19:03

我正在运行这个类和方法

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;它是创建两个随机数并将它们相加,还是只是取一个并将其乘以二?

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

如果是后者,有没有办法让我的程序调用多个Random6实例而不会diceRoll.Random6() + diceRoll.Random6(); 这样做两次是可以的,但如果我想做四六次,它会变得不优雅。

提前谢谢。

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

从循环中调用该方法

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

它只生成 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();

这样你就有了每个单独卷的总和和列表。