美文网首页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

    公共字段只是类用public修饰符所公开的简单公共变量, 而属性则是对字段的封装,它使用get和set访问器来控制...

  • tolua中的属性访问

    C#中的属性转换为用lua访问时,是被当作字段使用的用Get+属性名ClientDataProxy.Instanc...

  • 属性与字段

    回到目录项目源码 kotlin-class 项目 属性必须初始化, 如果没有直接赋值, 就必须写进构造函数中 声明...

  • C#中abstract的用法详解

    C#中abstract的用法详解 abstract可以用来修饰类,方法,属性,索引器和时间,这里不包括字段. 使用...

  • 13、Django_rest framework_序列化器和自定

    一、序列化器中的类属性字段 序列化中所定义的类属性字段,一般情况下与模型类字段相对应 默认情况下,这些类属性字段既...

  • Kotlin 属性与字段

    声明属性 Kotlin 类中的属性既可以用关键字 var 声明为可变的,也可以用关键字 val 声明为只读的。 使...

  • kotlin属性与字段

    借鉴kotlin中文站 声明属性 Kotlin类中声明属性,即可用关键字var声明成可变的,又可以用关键字val声...

  • kotlin属性与字段

    一:声明属性 kotlin类中属性可以使用关键字var也可以使用val,使用一个属性只需要在类实例后引用即可 二:...

  • Mybatis resultMap

    自动装配:多对一 可以不写其他字段与属性的映射,但被使用多次的字段必须写, 还有不写其他字段与属性只适用于N+1 ...

  • Kotlin 数据类

    功能 自动声明与构造函数入参同名的属性字段 自动实现每个属性字段的get/set方法 自动提供equals方法,比...

网友评论

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

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