随机最小值"最小值"不能大于"最大值"



我正在尝试制作一个小程序,该程序将从富文本框中选择随机行并将其打印在标签上。

我还尝试制作一个计时器,在标签停止之前在标签上显示随机行。

但是当我运行该程序时,它会给我此错误消息:

随机最小值"最小值"不能大于"最大值"

这是我的代码:

public partial class Form1 : Form
{
    private int ran;
    private int ranP;
    private int max;
    Random rnd = new Random();
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click_1(object sender, EventArgs e)
    {
        int max = richTextBox1.Lines.Count();
        int ranP = rnd.Next(1, max);
        int ran = 0;
        timer1.Enabled = true;
    }
    private void timer1_Tick(object sender, EventArgs e)
    {
        label2.Text = "The Winner is: " + richTextBox1.Lines[ranP];
        ran = rnd.Next(1, 11);
        ranP = rnd.Next(1, max);
        if(ran == 11){
            timer1.Enabled = false;
        }
    }
}

我的计时器中的这一行出现错误:

ranP = rnd。下一个(1,最大);

有谁知道为什么会这样?

button1_Click_1中声明一个局部变量max该变量this.max隐藏实例变量。当您在 timer1_Tick 方法中使用 max 时,它指的是从未赋值的实例变量。

button1_Click_1中的分配更改为

max = richTextBox1.Lines.Count();

应该有帮助。

最新更新