0

私のコードのいくつかに奇妙な問題があります。いくつかのオブジェクトのリストを作成しました。このリストに新しいオブジェクトを入力しようとすると、 を使用するF5と、リストのすべてのメンバーがまったく同じように作成されます。

しかし、この問題をF11でデバッグしようとすると、リストのメンバーが互いに異なって作成されます (これは正しいです)。リストのすべてのメンバーを生成するためにループを使用しています。ループの各反復では、new最初にクラスのオブジェクトをインスタンス化してからリストに追加します。

リストを次のように定義します。

  1. List<MyClass> classList = new List<MyClass>();
  2. MyClassいくつかのユーザー定義のメンバーとメソッドが含まれています

F5 がリストを正しく埋めない理由がわかりませんでした。文字列メンバーと整数メンバーのみを含む他のクラスで同じ問題を再現しようとしましたが、正常に動作しました。

4

1 に答える 1

0

問題は、ループの各反復で新しいRandom()メソッドを使用するためです。それを行う正しい方法は、例えばを使用することです

rndNumber=new Random() 

ループの外に出てから、ループ内で使用するのは

rndNumber.Next();

ソリューションの詳細については、次のリンクを参照してください。
乱数ジェネレーターは、ループ内で実行されるときに常に同じ値を選択します。

于 2012-07-12T19:37:50.497 に答える