生成一个可以在任何地方访问的随机数

本文关键字:方访问 任何地 访问 随机数 一个 | 更新日期: 2023-09-27 17:50:11

这是我的代码的开头:

 public partial class Form1 : Form
{
    static Random random = new Random();
    int prevnum;
    int currentnum;
    public int GenerateRandomNumber()
    {
        return random.Next(1, 1000);
    }
    public Form1()
    {
        int randomNumber = random.Next(1, 1000);
        InitializeComponent();
    }
    private void enterButton_Click(object sender, EventArgs e)
    {
        currentnum = Convert.ToInt32(guessBox.Text);
        if (randomNumber < currentnum)
        {
            warmOrColdLabel.Text = "Too High";
            if (currentnum > prevnum)
            {
                guessBox.BackColor = Color.Blue;
                prevnum = currentnum;
            }
            else
            {
                guessBox.BackColor = Color.Red;
                prevnum = currentnum;
            }
        }
        if (randomNumber > currentnum)
        {
            warmOrColdLabel.Text = "Too Low";
            if (currentnum > prevnum)
            {
                guessBox.BackColor = Color.Blue;
                prevnum = currentnum;
            }
            else
            {
                guessBox.BackColor = Color.Red;
                prevnum = currentnum;
            }
        }
        if (randomNumber == currentnum)
        {
            guessBox.Enabled = false;
            enterButton.Enabled = false;
            playAgainButton.Enabled = true;
        }
    }
    private void playAgainButton_Click(object sender, EventArgs e)
    {
        enterButton.Enabled = true;
        guessBox.Enabled = true;
        playAgainButton.Enabled = false;
    }
}

我的问题是得到一个随机数,它总是输出0。我只需要一个随机数,我可以把不同的按钮等。我做错了什么?

编辑:必须是1到1000之间的随机数。

生成一个可以在任何地方访问的随机数

您实际上没有在任何地方调用RandomNumberHandler()。此外,您需要在调用.Next()时指定您的范围(例如,random.Next(1000)+1以获得从1到1000的数字)。

public partial class Form1 : Form
{
  //other stuff from before
  int randomNumber; //move this here
 public Form1()
 {
    randomNumber = random.Next(1, 1000);  //assign it here
    InitializeComponent();
 }

主要问题是randomNumber在构造函数被调用时被初始化,之后当你访问它时,你访问的是相同的值。

您应该消除该实例变量,而只是简单地重新调用generaterrandom()。

此外,您可能希望将Random实例设置为静态变量:

static Random random =

否则每次卸载和重新加载类时,它将重复相同的序列,这将减少随机性(或者更确切地说,伪随机)。