我正在XNA中开发一个小型RTS。
我将每个单位“转到”位置设置为他们应该去的向量。如果我不比较两个Hashtables,一切正常,但是当我这样做时,我得到这个“NullReferenceException未处理”的恼人错误。
这是一段代码:
if (((float)unit[(int)selectedunits[I+"ID"] + "posX"] != (float)cgoto[(int)selectedunits[I+"ID"] + "X"]) && ((float)unit[(int)selectedunits[I+"ID"] + "posY"] != (float)cgoto[(int)selectedunits[I+"ID"] + "Y"]))
答案 0 :(得分:3)
当您将null
(从某个哈希表中的缺失条目)转换为int
或float
时,会发生NullReferenceExceptions。在不知道您的代码的情况下,我会猜测cgoto
中没有对所选单元的条目。
学会以适当的面向对象的方式做事。代码应该看起来像
if (selectedUnits[i].pos != selectedUnits[i].gotoPos)