我在c#项目中使用Dictionary进行数据存储。
问题在于,我的词典在几个小时内丢失了一些数据。 为什么呢?
public Dictionary<string, AgentHistory> ConnectRequestHistory = new Dictionary<string, AgentHistory>(); //IP - History
public Dictionary<AgentPlayerObject, AgentPlayerData> PlayerDataList = new Dictionary<AgentPlayerObject, AgentPlayerData>(); // AgentPlayerObject - PlayerData
当我在一段时间后尝试获取PlayerDataList[player].CharName;
时,字典已经丢失了。
答案 0 :(得分:1)
似乎AgentPlayerObject
是一个类,其平等成员未实现。
考虑实施平等成员:
另外,请考虑实施IEquatable Interface,即IEquatable<AgentPlayerObject>
。 If you implement IEquatable you still must override Object’s Equals and GetHashCode:
IEquatable是对此模式的重大改进,因为它提供了强类型的equals方法。这可以保护调用者和被调用者不会传递不兼容的对象类型。此外,它避免了拳击对值类型的开销。