美文网首页C#
C# 属性与字段 Day0815

C# 属性与字段 Day0815

作者: 段然丶 | 来源:发表于2017-08-13 19:44 被阅读0次

    公共字段只是类用public修饰符所公开的简单公共变量,

    而属性则是对字段的封装,它使用get和set访问器来控制如何设置或返回字段值。由于属性的实质是方法(get或set方法)

    公共字段虽然在速度上快,但它必须开放字段为public,这样一来对象的调用者便可以直接修改其值,值的内容是否合法,运行中是否会出错,就没有了保障,进而会大大降低类的可重用性;相反,属性类似于方法,它可以对存入的变量的值进行处理,如果觉得该值不合法,可以就地变换或者直接提出警告。这对该类的对象的使用安全有很大好处,在运行过程中,因公共变量值的错误而产生的问题会大大减少。

    使用公共字段:

    1. 允许自由读写;

    2. 取值范围只受数据类型约束而无其他任何特定限制;

    3. 值的变动不需要引发类中其它任何成员的相应变化;

    属性的使用条件:

    1. 要求字段只能读或者只能写;

    2. 需要限制字段的取值范围;

    3. 在改变一个字段的值的时候希望改变对象的其它一些状态;

    总结:

    尽可能的使用属性(property),而不是数据成员(field)。

    把所有的字段都设为私有字段,则把它们封装成属性,字段就是作用于整个类的变量。

    问题:什么情况下选择使用字段还是属性?

    属性其实就是对私有字段的读取和写入,以便做些公有字段无法完成的任务,他的使用方式和公有字段完全一样,。因而当我们选择使用属性还是使用字段时,主要看需求,如果不需设置访问权限、不需在赋值时检测值是否满足要求、不需要在赋值时修改对象其他一些状态等特殊的需求时,使用公有字段即可,否则就使用属性。

    相关文章

      网友评论

        本文标题:C# 属性与字段 Day0815

        本文链接:https://www.haomeiwen.com/subject/rcverxtx.html