オブジェクトのリストを使用して単純なシミュレーションを作成し、農家を表すために繰り返し計算を実行しようとしています。農民が持っている金額をランダムなパーセンテージで増やす方法が1つあり、各農民は$ 100から始めます
public class Farmer
{
public decimal money { get; set; }
public Farmer()
{
money = 100;
}
public void doOneYear() //Represents how much money the farmer earned
{
Random random = new Random();
decimal growth = random.Next(0, 100);
decimal percentage = (growth / 1000);
money = money * (1 + percentage);
}
}
実行するコードはこれです
List<Farmer> farmers = new List<Farmer>();
int count = 0;
while (count < 10)
{
Farmer newFarmer = new Farmer();
farmers.Add(newFarmer);
count++;
}
foreach(var farmer in farmers)
{
int years = 0;
while (years < 10)
{
farmer.doOneYear();
years++;
}
}
foreach (var farmer in farmers)
{
MessageBox.Show(farmer.money.ToString());
}
ただし、返される結果は、リストの最初のオブジェクトが繰り返されるだけです。デバッグ モードでプロセス全体をステップ実行すると問題なく動作しますが、実行するとオブジェクトが重複しているように見えます。