Windows phone 7 使用IsloatedStorageSettings保存自定义对象

Windows phone 7 使用IsloatedStorageSettings保存自定义对象,windows-phone-7,settings,isolatedstorage,Windows Phone 7,Settings,Isolatedstorage,我试图在IsolatedStorageSettings中保存一个对象以保存游戏的高分,但每当我试图保存对象C#的更新副本时,我似乎认为该对象没有改变。我尝试为HighScores类创建一个自定义的Equals函数,但似乎没有帮助 知道我做错了什么吗 谢谢 public bool AddOrUpdateValue(string Key, Object value) { bool valueChanged = false; // If the key exists if (

我试图在IsolatedStorageSettings中保存一个对象以保存游戏的高分,但每当我试图保存对象C#的更新副本时,我似乎认为该对象没有改变。我尝试为HighScores类创建一个自定义的Equals函数,但似乎没有帮助

知道我做错了什么吗

谢谢

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;
}
public bool AddOrUpdateValue(字符串键,对象值)
{
bool valueChanged=false;
//如果密钥存在
if(isolatedStore.Contains(键))
{
//如果值已更改
if(isolatedStore[Key]!=value)//这会一直返回false
{
//存储新值
isolatedStore[键]=值;
valueChanged=true;
}
}
//否则,创建密钥。
其他的
{
添加(键,值);
valueChanged=true;
}
返回值已更改;
}
//这位于HighScores类中
公共布尔等于(高分新高分)
{
for(int i=0;i
您尚未实现相等运算符“==”和“!=”这些比较引用相等,您将提供映射到“Equals”方法的实现


您应该执行isolatedStore.Save()来提交更改

谢谢,我实现了==和!=。但是它仍然不起作用。在运行Save()之前,我检查了isolatedStore值,它保存了正确的值。但是,当我再次启动应用程序时,这些值不会持续存在。还有其他想法吗?这样你就可以一步一步地完成你的代码,并且“AddOrUpdateValue”可以按预期工作吗?是的。save命令似乎有问题,我认为你也需要重写GetHashCode,他也应该实现GetHashCode,但在这种情况下它不会有任何影响,hashcode用于键而不是值。不,不是这样。在运行Save()之前,我检查了isolatedStore值,它保存了正确的值。但是,当我再次启动应用程序时,这些值不会持续存在。还有其他想法吗?