其他分享
首页 > 其他分享> > 58.属性和public 字段的区别是什么?调用 set 方法为一个属性设值,然后用 get 方法读取出来的值一定是 set 进去的值吗? 属性可以对设值、

58.属性和public 字段的区别是什么?调用 set 方法为一个属性设值,然后用 get 方法读取出来的值一定是 set 进去的值吗? 属性可以对设值、

作者:互联网

a.属性可以对设值、取值的过程进行非法值控制,比如年龄禁止设值负数,而字段则不能进行这样的设置
b.虽然 一般情况下 get 读取的值就是 set 设置的值,但是可以让 get 读取的值不是 set 设置的值的。极端的例子。Public Age{get{return100;}set{}}
c.扩展::用 reflector 反编译可以看出,属性内部本质上就是 set_***、get_*** 方法
class Person
{
public int Age{ get{return 3;}set{} }
}
Person p1=new Person();
P1.Age=30;
P1.Age++;
Console.Write(p1.Age);//输出3

标签:set,设值,get,Age,Person,属性
来源: https://blog.csdn.net/ogisreal/article/details/112307487