C#实现点击按钮自动更新最大值功能的技术求助
问题说明

我刚学C#不久,想请教个基础问题:点击数字按钮时,希望bestScoreLabel能自动更新显示历次生成的随机数最大值,但现在的代码每次都会让最大值和当前随机数一样,代码如下:
private void numberButton_Click(object sender, EventArgs e) { Random rand = new Random(); int randNumber = rand.Next(1, 1000); randomNumber.Text = randNumber.ToString(); bestScoreLabel.Text = randomNumber.Text; }
解决方法
你现在的问题有两个:一是每次点击都直接把当前随机数赋值给最大值标签,没做大小判断;二是每次在方法里新建Random对象,短时间内点击可能生成重复随机数。按下面改就行:
// 把Random和最大值变量放到类里,不要每次点击都新建 private Random rand = new Random(); private int bestScore = 0; private void numberButton_Click(object sender, EventArgs e) { int randNumber = rand.Next(1, 1000); randomNumber.Text = randNumber.ToString(); // 只有当前随机数比历史最大值大时,才更新最大值标签 if (randNumber > bestScore) { bestScore = randNumber; bestScoreLabel.Text = bestScore.ToString(); } }
这样改完:
- 同一个
Random实例生成的随机数更合理,不会频繁重复; bestScore变量会一直存着之前的最大值,每次生成新数都对比,只有更大才更新标签,就不会出现最大值和当前数总是一样的情况了。
内容的提问来源于stack exchange,提问作者SAINT PASE
相关产品推荐
相关产品推荐

