C# get set

来源:互联网 发布:java二叉树递归高度 编辑:程序博客网 时间:2024/05/25 08:15
如果有一个小狗类。小狗都有四条脚,这是固定的,不能改变,所以它的脚属性就不能随便设了,既为只读,这个时候就要用到get而不必用到set ,不然就可以随便设置,比如设为小狗为5条脚,这就不合适了。相反地,如果有一个属性只需要设置而不需要读取,就用set就行了。如果既要读又要写,那就用set和get结合。如果小狗还有一个年龄属性,还可以在set 里面设置一下值的范围,比如if(value<20)age=value; 这样就保证了合理的年龄,你不能设为100岁吧,不然都成神。一般把类中的字段设为private,把属性设为public.如public class dog{  private int age;  public int Age  {    set     {      age=value;     }    get     {       return age;      }  }}
1> get和set把读取和设置分开,这样的代码更容易维护。 在封装数据库字段的时候非常有用。get在属性中就是读取属性值,当然,你可以对当前的值进行加工后再返回。 set则相反,在设置属性值的时候被执行。可以用来验证设置的值以及进行其他相关处理。 2> 一般类是public的,那设置的值也需要是public的



1.作用就是对字段进行封装,类似javabean的用途。没有也可以,但是破坏了OO的封装性。2.如果只有get和set其中之一的方法的话就实现了对字段的保护。只读或者只写。



这是C#中的属性 public string UserName { get { return this._username; } set { this._username = value; } } 通俗来讲..get是获取值 set是设置值比如这句:get { return this._username; } 如果调用这个get方法 就能获得方法return的 this._username(返回的值)调用方法:Console.Write(对象.UserName);(输出该属性的值)比如这句:set { this._username = value; } 如果调用这个set方法 就可以重新设置username的值 value就是你新设置的值调用方法:对象.UserName="新值";(为该属性附新值) 个人理解:1.在封装数据库字段的时候非常有用,相信大家都这么用。2.你可以吧UserName当成一个这个类的一个属性,这个属性由字段_username的值确定,也可能不是_username,而是经过_username变化的。你可以在GET、SET中作相应的处理。比如这样:public string UserName { get { if(string.IsNullOrEmpty(_username))return ERRORCODE;return this._username; } set { if(string.IsNullOrEmpty(_username))this._username = defaultusername;this._username = value; } } 所以,封装以后,比没有封装更加方便。如果你要做条件判断、转换等 操作,在GET、SET你做会更方便。而且还保护了原字段。假设_username是数据库字段,如果程序员不想公开这个属性,而是做一些变换,这样数据安全性更高。



原创粉丝点击