2011-05-11 5 views
1

IsolatedStorageSettings에 개체를 저장하여 게임의 높은 점수를 저장하려고하지만 개체의 업데이트 된 복사본을 저장하려고 할 때마다 개체가 변경되지 않았다고 생각하는 것 같습니다. . HighScores 클래스에 대한 사용자 지정 같음 함수를 만들려고했으나 도움이되지 않습니다.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 값을 검사하고 올바른 값을 유지했습니다. 그러나 앱을 다시 시작하면 이러한 값이 유지되지 않습니다. 다른 아이디어? –

+0

코드를 단계별로 실행할 수 있으며 'AddOrUpdateValue'가 예상대로 작동합니까? – AwkwardCoder

+0

그래. 저장 명령은 엉망으로 보이는 것입니다 –

0

당신은 isolatedStore.Save을 수행해야합니다()

+0

아니요. Save()를 실행하기 직전에 isolatedStore 값을 검사하고 올바른 값을 유지했습니다. 그러나 앱을 다시 시작하면 이러한 값이 유지되지 않습니다. 다른 아이디어? –

관련 문제