我有以下方法:
void setTexts()
{
if (queueIn != null)
{
queueIn.text = countIn.ToString();
}
if (queueOut != null)
{
queueOut.text = waitingForPickup.ToString();
}
}
如果queueIn为null,我希望它什么也不做,但我一直得到一个空引用异常,说queueIn为null。当queueIn为null时,为什么它会进入if块?
编辑:当我添加Debug.Log检查时,问题就消失了,所以它可能没有保存过去的十几次。谢谢你的建议!我对C#很新。答案 0 :(得分:1)
您需要检查所有对象deference点。在这种情况下,countIn
可能是您的罪犯。
这是一个可能的解决方案,可以删除您的例外。
void setTexts(){
if (queueIn != null && countIn != null) {
queueIn.text = countIn.ToString ();
}
if (queueOut != null && waitingForPickup != null){
queueOut.text = waitingForPickup.ToString();
}
}
答案 1 :(得分:0)
您正在ToString()
和countIn
致电waitingForPickup
- 您也需要检查它们。 E.g:
void setTexts(){
if (queueIn != null && countIn != null) {
queueIn.text = countIn.ToString();
}
if (queueOut != null && waitingForPickup != null) {
queueOut.text = waitingForPickup.ToString();
}
}