考慮下面的代碼靜態對象的行爲?
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());
}
}
是否有此行爲的代碼零星任何機會。顯然它確實適合我。有時候,這些更改反映在靜態項目中。當我將主方法代碼更改爲
Item i=new Repository().GetItem();
i.MakeChangesToItem();
r.SaveItem(i);
它正常工作。 有沒有人遇到過這個?謝謝
「Item」是一個結構體還是一個類? –
@GiladNaaman看看代碼中的評論,這是一個類 – dpp
哦,對不起。沒有注意到。 –