//私有字段
private int _a;
private bool _b;
private int _c;
private int _d;
//属性:
//可读写
public int a
{
set { _a = value; }
get { return _a; }
}
//只读
public bool b
{
get { return _b; }
}
//可检测赋值是否正确
public int c
{
set
{
if (value >= 1 && value <= 10)
_c = value;
else
throw new Exception("c的赋值范围[1,10]");
}
}
//赋值时更改其他状态
public int d
{
set
{
_d = value;
_b = true;//改变了_b的值
}
get { return _d; }
}从例子中可看到属性其实就是对私有字段的读取和写入,以便做些公有字段无法完成的任务,他的使用方式和公有字段完全一样,所以可以理解成属性是为了满足对公有字段的特殊需求而产生的附属品。因而当我们选择使用属性还是使用字段时,主要看需求,如果不需设置访问权限、不需在赋值时检测值是否满足要求、不需要在赋值时修改对象其他一些状态等特殊的需求时,使用公有字段即可,否则就使用属性。
评论(0)
暂无评论。