Generate Random number in C#
本问题已经有最佳答案,请猛点这里访问。
我想生成一个介于1和10之间的随机数。但我也有一些错误。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public Form1() { InitializeComponent(); } int randomNumber = (0, 11); int attempts = 0; public int RandomNumber { get { return randomNumber; } set { randomNumber = value; } } |
它全部在0上,11下面的逗号表示-->struct system.int32表示一个32位有符号整数<--。在11下,它表示-->identifier预期的语法错误,","预期的<--。现在,如果我只有like int randomnumber=0,那么它会很好地工作,仍然有多个猜测,并且猜测计数像它应该的那样加起来,并且标签太高太低。只有数字永远是0。
另外,我怎样才能做到不必点击猜测按钮,只需点击键盘上的回车键就可以了?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | private void button1_Click_1(object sender, EventArgs e) { try { if (int.Parse(textBox1.Text) > RandomNumber) label1.Text ="Too high."; else if (int.Parse(textBox1.Text) < RandomNumber) label1.Text ="Too low."; else { label1.Text ="You won."; textBox1.Enabled = false; label2.Text ="Attempts: 0"; textBox1.Text = String.Empty; MessageBox.Show("You won in" + attempts +" attempts, press generate to play again.","Winner!"); attempts = 0; label2.Text ="Attempts:" + attempts.ToString(); return; } attempts++; label2.Text ="Attempts:" + attempts.ToString(); } catch { MessageBox.Show("Please enter a number."); } } |
要生成一个随机数,你必须使用System.Random类。您的语法可以如下所示:
1 2 | System.Random rng = new System.Random(<insert seed if you want>); int randomNumber = rng.Next(1,11); |
你必须做rng.next(1,11),因为下限是include(1是一个可能的结果),上限是exclude(11不会被添加到可能的结果池中)。
要实现"输入"快捷方式,您必须将一个方法添加到表单按键事件中,在该事件中调用Button1_Clicked方法。
1 | button1_Clicked_1(this, System.EventArgs.Empty); |
最后,您必须将窗体的"keypreview"属性设置为true。
您可以使用如下代码生成1到10之间的随机数
1 2 |
看看这个。
使用Random类生成随机数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | private Random _rnd = new Random(); private int RandomNumber { get { return _rnd.Next(0,11); } set { this = value; } } |