我有一个基本的类设置,可以获得一些伤害并具有健康状态。但由于某种原因,我无法访问基本变量,因为我得到了无法访问的错误。
这是我的代码设置:
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'由于其保护级别而无法访问
我推测是因为我把它设置为公开我可以通过我的伤害方法访问它,但我猜不是。我在哪里错了?
答案 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;
}