1.标准模版
最标准的属性定义方式
private string _userName;
public string userName
{
get { return _userName; }
set { this._userName = value; }
}
升级版的写法
private string _userName;
public string userName
{
get { return _userName; }
set
{
if(value == "张三")
{this._userName = "系统管理员";}
}
}
2.其它方式
public int userid;
public string header { get; set; }
其中第二种定义方式效果与最标准的定义方式最终效果相同。但是就是这种定义方式必须同时具备get、set方法。但是在标准定义里,可以只有get或者set为只读或者只写。
public int userid 这种定义方式将属性完全开放,安全程度低。一般不采纳。
3.理论
属性与普通变量不同就在于, 普通变量就是放在屋子里的东西, 是什么样明明白白. 而属性则是在屋子的门口放了个守门人, 你拿东西放东西要经过他.
这个守门人就是属性访问器, 拿东西就是 get, 放东西就是 set. 怎么拿怎么放是它说了算, 虽然你觉得好像就是直接拿直接放差不多.
GET SET 就是对外的接口 ,一般在实例中访问成员数据需要这个成员数据的访问方式为PUBLIC ,现在C#很高级了,GET 就是获取,SET 就是设置,但是它提供了跟好的收缩性,对GET 和SET 可以单独设置访问权限 比如你对某个成员数据只能读取或者只写,或者只有派生类可以访问等。。。 相对以前来说,没有属性访问器,需要通过函数来调用私有成员数据,属性提供了高效的访问模式和简单的书写