【发布时间】:2016-07-03 01:44:56
【问题描述】:
我在游戏中遇到了一个关于乐谱序列化的奇怪问题。
我有一个 LevelHighScore 课程:
[System.Serializable]
public class LevelHighScores
{
readonly Dictionary<Level, ModeScores> scores;
// clipped out the rest for simplicity
}
使用枚举键,Level。
我最近在我的游戏中添加了一些新关卡,但我没有将新关卡添加到枚举末尾,而是按字母顺序添加了新枚举。现在,当我加载游戏时,我的新关卡有与之关联的现有分数,这让我认为枚举的序数对序列化/反序列化有影响。
我想在以后添加关卡时避免这个问题。我也不想记住只在枚举末尾添加级别。
有没有办法确保枚举始终被反序列化,即使在追溯添加新值时也是如此?
【问题讨论】:
-
使用
Dictionary<String, ModeScores>代替级别键控字典似乎是一种有效的解决方法。尽管它失去了枚举的类型安全性。很想听听其他建议。 -
您可以显式分配枚举值,因此顺序无关紧要。见stackoverflow.com/questions/1681285/…
-
@dbc,这是个好建议,您应该将其扩展为答案
标签: c# serialization enums binary-serialization