【问题标题】:What's wrong with my C# codes?我的 C# 代码有什么问题?
【发布时间】:2017-05-02 08:36:16
【问题描述】:

为什么'injured'值不同?

public int Health = 500;
public int Injured;

    public int AtkDamage()
    {
        Random AtkRnd = new Random();
        return Injured = AtkRnd.Next(0, 100);
    }


    public int RemainHP()
    {
        return Health -= Injured;
    }

为什么'RemainHP'中的'Injured'与'AtkDamage'中的'Injured'不同,它们是同一个班级。非常感谢。(抱歉英语不好)

【问题讨论】:

  • 因为(如果它们不同)RemainHP()AtkDamage() 之前执行。
  • 你想要RemainHP == Health - Injured,对吧?这样 (Health -= Injured) 每次调用 RemainHP() 时都会攻击可怜的生物...

标签: c# visual-studio variables global-variables


【解决方案1】:

删除RemainHP 中的=。现在相当于

Health = Health - Injured;
return Health;

你想要

return Health - Injured

【讨论】:

  • 那么如何在第一次命中后改变'health'值呢?
  • 取决于您的代码外观,但您可以在击中生物时简单地使用Health -= AtkDamage()
猜你喜欢
  • 1970-01-01
  • 2015-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-28
相关资源
最近更新 更多