2012-07-12 34 views
0

我的一些代码存在一个奇怪的问题。我创建了一些对象的列表;当试图用新对象填充这个列表时,如果我使用F5,列表中的所有成员将被创建为完全相同!F11调试正确,但F5不是

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

我定义列表如下:

  1. List<MyClass> classList = new List<MyClass>();
  2. MyClass包含我无法弄清楚,为什么F5不正确填写列表中的一些用户定义的成员和方法

。我试图用其他只包含字符串和整数成员的类复制相同的问题,但是这种方式正常工作。

+0

您是否可能每次使用'new Random'对象生成元素?或者使用不同的线程? – 2012-07-12 04:17:25

+4

如果您想让任何人有机会弄清楚这一点,您需要发布相关代码... – 2012-07-12 04:17:27

+0

请显示更多代码。循环将特别感兴趣。要格式化代码,请在代码的第一行之前添加一个空行,然后将该片段缩进四个额外的空格。 – dasblinkenlight 2012-07-12 04:21:47

回答

0

问题是因为在循环的每次迭代中使用新的Random()方法。这样做的正确方法是

rndNumber=new Random() 

一次使用例如圈外,然后在回路中只使用在溶液中

rndNumber.Next(); 

更多信息可以在下面被找到链接:
Random number generator always picks the same value when run inside a loop

+0

如果您的问题重复,您应该发布代码和/或一起删除问题。 – 2012-07-12 19:42:03