在 C# 中生成随机数 [重复]
Posted
技术标签:
【中文标题】在 C# 中生成随机数 [重复]【英文标题】:Generate Random number in C# [duplicate] 【发布时间】:2016-08-20 17:37:22 【问题描述】:我想生成一个介于 1 和 10 之间的随机数。但我遇到了几个错误。
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位有符号整数 标识符预期语法错误,',' 预期
另外,我怎样才能到达我不必点击猜测按钮的地方,我只需按键盘上的 Enter 键即可?
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.");
【问题讨论】:
C# 没有用于生成随机数的特殊语法。如果要生成随机数,请查看Random
类。
***.com/questions/2706500/…
你可以在这里找到答案:***.com/questions/2706500/…
"另外,我怎样才能到达我不必点击猜测按钮的地方,我可以直接在键盘上按 Enter 键?"这是一个与随机数无关的单独问题。将其作为一个新问题提出,您会得到更好的答案。
【参考方案1】:
要生成随机数,您必须使用 System.Random 类。您的语法可能如下所示:
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 不会被添加到可能的结果池中)。
要实现您的 Enter 快捷方式,您必须在 Forms KeyPress 事件中添加一个方法,在该事件中调用 button1_clicked 方法。
button1_Clicked_1(this, System.EventArgs.Empty);
最后,您必须将表单的“KeyPreview”属性设置为 true。
【讨论】:
【参考方案2】:您可以使用类似下面的代码来生成 1 到 10 之间的随机数
Random randomNumberGenrator = new Random();
int num = randomNumberGenrator.Next(10) + 1;
【讨论】:
而不是复制答案,您应该找到另一个问题来回答该问题并将其标记为重复 当然感谢您的信息 这会使用种子 10 初始化Random
实例。然后它会尝试从 0
生成 int.MaxValue - 1
,然后将 1
添加到其中。所以这个方法产生一个从1
到int.MaxValue
的值。
@Enigmativity :根据您的理解,我可以知道我定义的最大值是多少。在代码中,我定义了我的随机数范围并生成 1 到 10 之间的随机数
@Maddy - 实际上,我对可能的数字范围有点错误 - 因为您使用 10
的种子初始化 Random
那么它总是会产生相同的随机数,所以第一次调用randomNumberGenrator.Next()
将始终产生相同的值。当我运行你的代码时,我总是得到2041175502
。如果您删除了种子,那么您将在代码中获得 1
和 2147483647
之间的不同值。【参考方案3】:
看看this。
使用 Random 类来生成随机数。
private Random _rnd = new Random();
private int RandomNumber
get
return _rnd.Next(0,11);
set
this = value;
【讨论】:
每次调用属性时都创建Random
对象不是一个好主意。以上是关于在 C# 中生成随机数 [重复]的主要内容,如果未能解决你的问题,请参考以下文章