访问基类变量无法访问的错误

时间:2016-07-27 05:38:39

标签: c#

我有一个基本的类设置,可以获得一些伤害并具有健康状态。但由于某种原因,我无法访问基本变量,因为我得到了无法访问的错误。

这是我的代码设置:

public abstract class Items
{

    public float health { get; private set; }
    public Items()
    {
        health = 100f;
    }
}

public class Sword : Items
{
    public string name { get; private set; }
    public float maxPower { get; private set; }

    public Sword(string n float mPower) : base()
    {
        name  = n;
        maxPower = mPower;

    }

    public void UpdateDamage(float damageAmount)
    {
        health = Mathf.Clamp(health - damageAmount,0,100);
    }
}

错误是:

  

'Items.health'由于其保护级别而无法访问

我推测是因为我把它设置为公开我可以通过我的伤害方法访问它,但我猜不是。我在哪里错了?

1 个答案:

答案 0 :(得分:3)

Items的设置者从private更改为protected。因为它只是private set,所以该类可以将它设置为非其他类,甚至不是派生类。

  • 要启用派生类,请将其更改为protected set(如下所示)。
  • 要允许任何人设置它(public),请删除该字词并仅保留set; - 默认为public

有关access modifiers属性public abstract class Items { public float health { get; protected set; } public Items() { health = 100f; } }

的详细信息

所以:

p {
    font-size: 15px;
    color: #555;
    line-height: 20px;
    text-indent: 30px;
    text-align: justify;
}