从类型访问数据的更简洁的方法

Cleaner ways of accessing data from types

所以,这是关于同一主题的两个问题。

我一直在寻找使我从类型中访问数据更干净的方法。举个例子,假设我正在制作某种 Health class,我为它写了一些字段。

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;
}

它会产生类似的预期效果。

编辑:另外,我知道这是不必要的,但它仍然是我想要的。 (抱歉问题中的小错误,已修复)

您可以将健康 class 中的隐式运算符添加到 returns 当前值的空头:

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