2011-05-11 85 views
1

我試圖保存IsolatedStorageSettings中的對象以保存我的遊戲的高分,但每當我嘗試保存對象的更新副本C#似乎認爲對象沒有改變。我試圖爲HighScores類創建一個自定義的Equals函數,但這似乎沒有幫助。使用IsloatedStorageSettings保存自定義對象

任何想法我做錯了什麼?

感謝

public bool AddOrUpdateValue(string Key, Object value) 
{ 
    bool valueChanged = false; 

    // If the key exists 
    if (isolatedStore.Contains(Key)) 
    { 
     // If the value has changed 
     if (isolatedStore[Key] != value) //This keeps returning false 
     { 
      // Store the new value 
      isolatedStore[Key] = value; 
      valueChanged = true; 
     } 
    } 
    // Otherwise create the key. 
    else 
    { 
     isolatedStore.Add(Key, value); 
     valueChanged = true; 
    } 

    return valueChanged; 
} 



//This is located inside the HighScores class  
public bool Equals(HighScores newHighScores) 
{ 
    for (int i = 0; i < highScores.Length; i++) 
    { 
     if (!highScores[i].Name.Equals(newHighScores.GetIndex(i).Name)) 
     { 
      return false; 
     } 

     if (!highScores[i].Time.Equals(newHighScores.GetIndex(i).Time)) 
     { 
      return false; 
     } 
    } 

    return true; 
} 

回答

2

您還沒有實現平等的運營商「==」和「!=」和這些比較基準平等,你將不得不提供它映射到你的「等於實施「方法

http://msdn.microsoft.com/en-us/library/ms173147%28v=vs.80%29.aspx

+0

謝謝,我實現==和!=。但它仍然無法正常工作。我在運行Save()之前檢查了IsolatedStore的值,並保存了正確的值。但是,當我再次啓動應用程序時,這些值不會持續。任何其他想法? – 2011-05-12 08:19:20

+0

所以你可以通過你的代碼和'AddOrUpdateValue'按預期工作? – AwkwardCoder 2011-05-12 08:28:27

+0

是的。保存命令是什麼似乎是搞砸 – 2011-05-12 20:32:51

0

你應該做isolatedStore.Save()以提交更改

+0

不,事實並非如此。我在運行Save()之前檢查了IsolatedStore的值,並保存了正確的值。但是,當我再次啓動應用程序時,這些值不會持續。任何其他想法? – 2011-05-12 08:19:52

相關問題