<分区>
我用下面的例子总结了这个问题。
static List<double> values = new List<double>();
static void Main(string[] args)
{
doThis();
foreach (var value in values)
Console.WriteLine(value);
Console.ReadLine();
}
public static void doThis()
{
for (int i = 0; i < 100; i++)
{
double value = 0;
double sum = 0;
Random rnd = new Random();
for (int j = 0; j < 10; j++)
{
value = rnd.Next(0, 1000);
sum += value;
}
values.Add(sum / 10);
}
}
使用此代码,值列表为所有索引返回相同的值。 值 = {rnd, rnd, rnd, rnd..., rnd}。不知何故,最后一个值会覆盖其他值。
但是,如果我一步步调试,它会显示不同的值:values = {rnd0, rnd1, rnd2 ...., rnd99}。
如果您能赐教,我将不胜感激。