C#中字段和属性的区别

1、二者之间的联系

在C#中,对于一些公有字段我们可以无限制的访问,但是这样做的后果是,我们可能错误的修改了字段中的值!使得数据不准确,于是就出现了属性,属性中的get和set解决了访问字段时候出现的问题!

2、属性的优点

(1)属性可以保证数据安全
由于属性中有set和get,set负责属性的写入工作,get负责属性的读取工作!所以就出现了,只读属性、既可读又可写属性,还有只写属性!

实例:出租车
有一个Ticket类,有一个价格属性,价格的单价是随着行驶距离的增加而变化的,是有一定的比例的关系的!
如:0-100公里,票价不打折
101-200公里 总额打9.5折

此时的9.5折是私有的,就是说是我这个类定的,就是说出租车公司定的,别人是不可以进行修改的,要是修改也只能是在我自己的这个类中相对应的字段进行修改!

int _distance;
private double _price;
public double Price
{
get
{
if (_distance <= 100)
{
return _distance * 1.0;
}
else
{
return _distance * 0.95;
}

        }
    }

此时的价格的属性就是只读的!

(2)属性没有存储数据的功能

属性没有存储数据的功能,数据都存在字段中,所以只有修改字段的数据才能更改数据,修改属性的值没用。
————————————————
版权声明:本文为CSDN博主「光哥_帅」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jerry11112/article/details/80177002

发布了8 篇原创文章 · 获赞 4 · 访问量 204

猜你喜欢

转载自blog.csdn.net/weixin_43937283/article/details/105339616