【发布时间】:2016-07-10 20:20:05
【问题描述】:
这对人们来说可能是一个简单的问题,但我不明白为什么会发生这种情况。这是我的第一个代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GameCore
{
public class PlayerCharacter
{
public void Hit(int damage)
{
Health -= damage;
if (Health <= 0)
{
IsDead = true;
}
}
public int Health { get; private set; } = 100;
public bool IsDead{ get; private set; }
}
}
现在 Visual Studio 在赋值符号 (=) 上给出了 Invalid token 错误(根据标题),我不明白为什么。有人能解释一下吗?
我正在尝试将生命值的 int 设置为 100,并且每次角色受到伤害时,生命值都会降低。谢谢大家。
我正在使用 Visual Studio 2013 v12.0.40629.00 更新 5
【问题讨论】:
-
@SimonKarlsson 实际上,无论如何,每次命中后可能都会执行死亡检查。就我个人而言,我只是让 Hit 立即将其作为布尔值返回,以避免再次调用。无论如何,优化他的游戏不是这里的问题。
-
谢谢大家,我会考虑,这是一个简单的 specFlow 实验类......我将在以后更改公共布尔值......只是想让事情顺利进行。再次感谢,G。
-
@Nyerguds 你是对的,我们不应该,但是我的意思是确保正确性然后优化。想象一下他添加了一个 revive 方法的场景,那么他在这里也需要更改
boolIsDead的值。我的意思是IsDead更多的是检查而不是实际值。 :) -
@GraemePhillips 你应该accept HimBromBeere 的回答;尽管他们忘记了示例代码中的括号,但答案确实明确指出您需要将初始化放在类构造函数中,这是您问题的解决方案。
-
@Nyerguds 现在已经完成了,再次感谢大家的帮助。