private,然后写两个方法 SetAge 和 GetAge。
属性看起来像变量,用起来也像变量,但实际上它背后是两个方法(get 和 set)。
class Hero
{
private int _age; // 私有字段(后台老板)
public int Age // 公开属性(前台经理)
{
get { return _age; } // 读的时候
set
{
if (value < 0) value = 0; // 可以在这里加逻辑!防止年龄变成负数
_age = value;
}
}
}
如果你不需要在 get/set 里写逻辑,只是单纯地存取,可以简写:
public string Name { get; set; } // 编译器会自动帮你生成那个私有字段
只写 get,不写 set。
public string Sect { get; } = "华山派"; // 只能读,不能改
创建一个 Master 类,有一个属性 MP(内力)。
要求:在 set 里做判断,如果赋值超过 100,就强制设为 100(因为经脉承受不住)。
class Master
{
private int _mp;
public int MP
{
get { return _mp; }
set
{
if (value > 100)
_mp = 100;
else
_mp = value;
}
}
}