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未处理"。但在这之前,我已经有了代码的另外两个部分,其中有相同的行,它从未向我显示过这个问题,而且它工作得很好。有人能帮我做这个吗?我真的不知道该怎么办。

System.NullReferenceException是未处理的ERROR

我很惊讶你竟然能编译!

您在此处缺少+

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可能为空。请确保将此变量至少设置为""