【发布时间】:2012-07-12 04:15:17
【问题描述】:
我的一些代码有一个奇怪的问题。我创建了一些对象的列表;当尝试用新对象填充此列表时,如果我使用 F5,则列表中的所有成员将被创建为彼此完全相同!
但是当我尝试通过 F11 调试这个问题时,列表的成员将被创建为彼此不同的(这是正确的)。我正在使用循环来生成列表的所有成员,并且在循环的每次迭代中,我使用new 首先实例化类的对象,然后将其添加到列表中。
我将列表定义为:
-
List<MyClass> classList = new List<MyClass>(); -
MyClass包含一些用户定义的成员和方法
我不明白为什么 F5 不能正确填写列表。我试图用只包含字符串和整数成员的其他类复制同样的问题,但它工作正常。
【问题讨论】:
-
您是否每次都使用
new Random对象生成元素?还是使用不同的线程? -
如果您希望任何人有机会解决这个问题,您需要发布相关代码...
-
请显示更多代码。该循环将特别有趣。要格式化代码,请在代码的第一行之前添加一个空行,并将片段缩进四个额外的空格。
-
可能是F5和F11速度不同造成的。由于 F11 步数更精细,因此需要更多步数,因此通常需要更多时间。同时,不同线程上的某些东西可能会影响您的列表元素 - 如果生成发生得更快(如 F5),您将看不到这种行为。只是一个理论......
-
@Charmander 是的,我在循环的每次迭代中都使用 new Random !其实不只是F11可以正常工作,如果我在循环的某处放了一个断点然后使用F5,它就可以正常工作!
标签: c# visual-studio-2010