0

我的一些代码有一个奇怪的问题。我创建了一些对象的列表;当尝试用新对象填充此列表时,如果我使用F5,列表中的所有成员将被创建为彼此完全相同!

但是当我尝试通过 调试这个问题时F11,列表的成员将被创建为彼此不同(这是正确的)。我正在使用循环来生成列表的所有成员,并且在循环的每次迭代中,我使用new首先实例化类的对象,然后将其添加到列表中。

我将列表定义为:

  1. List<MyClass> classList = new List<MyClass>();
  2. MyClass包含一些用户定义的成员和方法

我不明白为什么 F5 不能正确填写列表。我试图用只包含字符串和整数成员的其他类复制同样的问题,但它工作正常。

4

1 回答 1

0

问题是因为在循环的每次迭代中都使用了新的 Random()方法。正确的方法是使用例如

rndNumber=new Random() 

一旦退出循环,然后在循环中只使用

rndNumber.Next();

有关该解决方案的更多信息,请参见以下链接:
Random number generator always picks the same value when run inside a loop

于 2012-07-12T19:37:50.497 回答