【发布时间】:2011-12-21 14:08:52
【问题描述】:
我正在用 C#(使用 XNA)开发一个小型 RTS。
我将每个单元的“goto”位置设置为它们应该去的向量。如果我不比较这两个 Hashtable,一切正常,但是当我这样做时,我会收到“NullReferenceException was unhandled”这个恼人的错误。
这是我收到错误的代码:
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"])
)
希望这足够具体。
【问题讨论】:
-
unit、selectedunits和cgoto是如何定义的?
-
请显示
NullReferenceException的堆栈跟踪。这应该突出显示您的空引用的确切位置。 -
我想
selectedunits[I+"ID"]是空的。请逐步使用 Visual Studio 并在运行时检查该值。 -
我忘了指定我只在使用“cgoto”哈希表时出现此错误,如果我使用任何其他变量,一切正常。现在可以更好地了解 Stack Trace。
-
您使用的是哪个版本的 .NET?