以下のコードを検討してください
class Repository{
public static Item i; //Item is a type (class)
GetItem(){
// initialize i if null. Read i from an xml file if the last write time of file is greater than last read time else return current i
return i;
}
SaveItem(item){
//save i;
//write i to xml file
i=item;
}
}
class User{
public static void Main(){
Repository r = new Repository();
r.GetItem().MakeChangesToItem(); //method inside item to make some changes
r.SaveItem(r.GetItem());
}
}
このコードが散発的に動作する可能性はありますか? どうやらそれは私にとってそうです。変更が静的アイテムに反映される場合と反映されない場合があります。Main メソッドのコードを
Item i=new Repository().GetItem();
i.MakeChangesToItem();
r.SaveItem(i);
それは正常に動作します。これを経験した人はいますか?ありがとう