【发布时间】:2013-08-06 22:09:50
【问题描述】:
我有 8 个标签。我希望每个标签都将其文本属性设置为随机数。出于某种原因,只有第一个标签设置了数字,这是为什么呢? (另外,虽然没有直接关系,但如果有更好的方法来处理 label1.Text、label2.Text、label3.Text 等,请告诉我!)
谢谢
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
go();
}
void go()
{
int[] numbers = new int[8];
foreach (int number in numbers)
{
numbers[number] = getRandomNumber();
}
label1.Text = numbers[0].ToString();
label2.Text = numbers[1].ToString();
label3.Text = numbers[2].ToString();
label4.Text = numbers[3].ToString();
label5.Text = numbers[4].ToString();
label6.Text = numbers[5].ToString();
label7.Text = numbers[6].ToString();
label8.Text = numbers[7].ToString();
}
int getRandomNumber()
{
Random random = new Random();
return random.Next(10, 1000);
}
}
【问题讨论】:
-
在你的函数之外随机静态化。
-
您的问题是为所有 8 个标签生成相同的数字?还是只有第一个标签显示一个值,而所有其他 7 个不显示任何数字?
-
@AustinSalonen 这不是重复的。正如在答案中发现的那样,Random 对象并不是问题的全部原因。所有其他标签仍被分配 0,主要问题是 foreach 循环。
标签: c#