Windows phone 7 使用IsloatedStorageSettings保存自定义对象
我试图在IsolatedStorageSettings中保存一个对象以保存游戏的高分,但每当我试图保存对象C#的更新副本时,我似乎认为该对象没有改变。我尝试为HighScores类创建一个自定义的Equals函数,但似乎没有帮助 知道我做错了什么吗 谢谢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 (
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值,它保存了正确的值。但是,当我再次启动应用程序时,这些值不会持续存在。还有其他想法吗?