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
属性和public 字段的区别是什么?调用 set 方法为一个属性设值,然后用 get 方法读取出来的值一定是 set 进去的值吗?
最新推荐文章于 2022-05-25 17:21:08 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)