我正在c#中进行一个基于回合的多人游戏,并希望在每次移动/命令/回合后检查状态是否同步。状态太大,无法每次发送,所以我正在研究类似哈希的问题。通过网络比较游戏状态?
但是,如果我理解正确,那么在C#中,类的默认GetHashCode
基于对象的指针,所以这不适用于检查网络上的相等性。
现在我的问题:我应该为所有状态类重写GetHashCode
,还是有更好/更简单的方法?
游戏还处于非常早期的发展阶段,并且状态在不断变化,所以每次我在我的状态下添加或更改某些内容时,我都必须更新GetHashCode
方法,这将非常烦人。这就是为什么我还没有尝试覆盖它,希望有一个更简单的方法。
注:我在Unity工作,所以它显然是c#版本3。
谢谢!
不,您没有别的办法可以生成您自己的检查程序。即使是散列也不是一个好主意,因为在同一个散列上会有不同的值。 – Gusman
C#* 2 *?你确定?请仔细检查您正在使用的C#版本。现在C#2已经很老了(2006)。 – Amy
Unity是c#5 ... – Gusman