System.NullReferenceException是未处理的ERROR
本文关键字:ERROR 未处理 NullReferenceException System | 更新日期: 2023-09-27 17:49:26
int danoAoInimigo = GeradorDeNumeroAleatorio.NumeroEntre(0, 10);
int danoAoJogador = GeradorDeNumeroAleatorio.NumeroEntre(0, 10);
Console.WriteLine(">>PRESSIONE QUALQUER TECLA<<");
Console.ReadKey();
Console.WriteLine("Você causou: " + danoAoInimigo + " de dano ao" _jogador.LocalAtual.InimigoVivendoAqui.Nome + " !! ");
_jogador.LocalAtual.InimigoVivendoAqui.VidaAtual = (_jogador.LocalAtual.InimigoVivendoAqui.VidaAtual) - danoAoInimigo;
Console.WriteLine("O inimigo tem: " + _jogador.LocalAtual.InimigoVivendoAqui.VidaAtual + " de vida.");
if (_jogador.LocalAtual.InimigoVivendoAqui.VidaAtual <= 0)
{
Console.WriteLine("Você matou o inimigo.");
Console.WriteLine(">>PRESSIONE QUALQUER TECLA<<");
Console.ReadKey();
}
基本上,我在这里做的只是一个简单的文本游戏"战斗系统"。它从两个变量的声明开始,以保持玩家将对怪物造成的伤害和怪物将对玩家造成的伤害。然后我给用户发了一条信息,因为他知道自己造成了多大的伤害。然后我用我正在使用的一些类让怪物失去了生命,在我向用户显示怪物的当前生命之后。最后,如果怪物的生命值小于或等于0,他就会死亡。
问题是:每次我运行反代码并进入游戏的这一部分时,visual studio都会在一个小窗口中给我一条消息,说"System.NullReferenceException未处理"。但在这之前,我已经有了代码的另外两个部分,其中有相同的行,它从未向我显示过这个问题,而且它工作得很好。有人能帮我做这个吗?我真的不知道该怎么办。
我很惊讶你竟然能编译!
您在此处缺少+
Console.WriteLine("Você causou: " + danoAoInimigo + " de dano ao" _jogador.LocalAtual.InimigoVivendoAqui.Nome + " !! ");
将其更改为
Console.WriteLine("Você causou: " + danoAoInimigo + " de dano ao" + _jogador.LocalAtual.InimigoVivendoAqui.Nome + " !! ");
编辑:
在这种情况下,您的_jogador.LocalAtual.InimigoVivendoAqui.Nome
可能为空。请确保将此变量至少设置为""