天天看点

c# get set使用心得

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 可以单独设置访问权限 比如你对某个成员数据只能读取或者只写,或者只有派生类可以访问等。。。 相对以前来说,没有属性访问器,需要通过函数来调用私有成员数据,属性提供了高效的访问模式和简单的书写