所以,這是關于同一主題的兩個問題。我一直在尋找使我從類型中訪問數據更加干凈的方法。舉個例子,假設我正在創建某種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;}它將產生類似的預期效果。
1 回答

三國紛爭
TA貢獻1804條經驗 獲得超7個贊
您可以將 health 類中的隱式運算符添加到返回當前值的 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
- 1 回答
- 0 關注
- 134 瀏覽
添加回答
舉報
0/150
提交
取消