簡體   English   中英

C#將包含Random.next實例的方法相乘

[英]C# multiplying a method containing an instance of Random.next

我正在運行此類和方法

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?

我認為可能是后者,但是我只是想在進入復雜的編程之前進行檢查。

如果是后者,則有一種方法可以使我的程序無需使用diceRoll.Random6() + diceRoll.Random6();就可以調用Random6多個實例diceRoll.Random6() + diceRoll.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();

這樣,您就可以得到總和以及每個單獨卷的列表。

從循環內調用方法

int result = 0;

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM