Сохранение пользовательского объекта с помощью IsloatedStorageSettings - PullRequest
1 голос
/ 11 мая 2011

Я пытаюсь сохранить объект в IsolatedStorageSettings, чтобы сохранить высокие оценки для моей игры, но всякий раз, когда я пытаюсь сохранить обновленную копию объекта C #, кажется, что объект не изменился.Я пытался создать пользовательскую функцию Equals для класса HighScores, но это не помогло.

Есть идеи, что я делаю не так?

Спасибо

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 ]

2 голосов
/ 11 мая 2011

Вы не реализовали операторы равенства '==' и '! =', И они сравнивают ссылочное равенство, вам нужно предоставить реализацию, которая соответствует вашему методу 'Equals'

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

0 голосов
/ 11 мая 2011

Вы должны сделать isolatedStore.Save (), чтобы зафиксировать изменения

...