所以,这是关于同一主题的两个问题。
我一直在寻找使我从类型中访问数据更干净的方法。例如,假设我正在制作某种Health
类,并为此编写了一些字段。
public class Character {
public Health Health;
}
public class Health {
public short Current;
public short Maximum;
}
现在这可行,但是我正在寻找一种方法,当我想获得当前的健康值时,可以避免使用Health.Current
。像这样:
public class Health {
private short Current;
public short Maximum;
public short this {
get { return Current; }
set { Current= value; }
}
}
我原以为这会奏效,但不幸的是它没有。有什么办法可以做到这一点?
如果没有,那么有办法代替它:
public class Character {
public short Health;
public short Health.Maximum;
}
它会有类似的预期效果。
编辑:另外,我知道这是不必要的,但是我仍然想要它。 (很抱歉这个问题有小错误,已解决)
答案 0 :(得分:1)
您可以将运行状况类中的隐式运算符添加到返回当前值的short中:
public class Health
{
public static implicit operator short(Health health)
{
return health.Current;
}
public short Current;
public short Maximum;
}
像这样使用它:
Health h = new Health { Current = 20, Maximum = 100};
short current = h;
Console.WriteLine(current); // 20