C#字段属性的特性
Posted 工控上位机学习
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#字段属性的特性相关的知识,希望对你有一定的参考价值。
工控课堂【www.gkket.com】工程师必备网站
电气工控自动化-超万元免费资料
一、字段的定义
字段是在类或结构中直接声明的任意类型的变量。
声明一个字段,可以用访问修饰符+类型+变量名称来声明,下图是一个简单的示例:
二、属性的定义
属性语法是字段的自然延伸,属性需要有get或者set的访问器。
声明一个属性,可以用访问修饰符+类型+变量名称来声明,下图是一个简单的示例:
三、字段的特性
1.字段通常不使用public关键字,仅在private和protected时才建议使用。如果您要使用public时,建议转为属性。这是为了符合面向对象设计的原因。简单一句话理解就是字段对内,属性对外。
2.可以对字段使用static关键字,这可使字段让调用方在任何时候进行调用,即使不存在任何类的实例。
3.也可以对字段使用static readonly关键字,这样很像const关键字。它们之间的区别是static readonly需要在运行时才可以访问,而const则编译的时候就已经可以访问了。
4.字段是在对象实例的构造函数被调用之前便初始化。如果构造函数分配了该字段的新值,则它将覆盖在字段声明期间给定的任何值。
5.字段可以使用ref、out关键字传递。
四、属性的特性
1.属性需要定义访问器get或者set,或者两者都有。
2.属性可以隐式定义,即只有简单的get、set。这样声明会非常简洁。如:public int 成员数量 { get; set; }
3.属性还可以使用缓存式定义,这对于一些特殊情形下,非常有用,它通常会结合字段来进行缓存。如下图:
4.字段是变量,但属性不是变量噢。变量是可以使用ref、out关键字传递的,所以字段可以,但属性不可以。
6.属性可以抽象、虚化、密封,即属性可以加上abstract、virtual、sealed关键字。
五、其它的高级特性
1.老是使用get访问器,我是不是等于每次都调用一下方法,这样是不是增加了额外开销?
答:是等于调用方法,但不会增加额外开销。编译器已经自动优化了get访问器,不会产生额外开销。但是当该属性声明为virtual关键字,由于编译器搞不清楚会不会被子类重写属性,所以,这种情况下会产生额外开销。
2.编写属性时,我可以在get访问器更改缓存字段的值吗?
答:如上图,您可以更改缓存字段_number的值。但是这是一种非常差劲的编码风格。您不应该去更改_number字段的值,它的作用就让它仅仅用于记录缓存就好。
转发是最大的鼓励!谢谢您的支持!
重要通知
想加入工控上位机学习技术交流群
请添加班长为好友
并备注:地区-行业-姓名昵称获取进群资格。
工控上位机学习 专业专注分享
——————————————————————
▣ 来源:网络-百度文库,侵删!
▣ 声明:本文素材系网络收集,工控上位机学习编辑整理。文中所用视频、图片、文字版权归原作者所有。但因转载众多,无法确认真正原始作者,故仅标明转载来源。如涉及作品版权问题,烦请及时联系17621634088(微信同号),我们将即刻确认版权并按国家相关规定支付稿酬!
她们都关注了,你还等什么?
以上是关于C#字段属性的特性的主要内容,如果未能解决你的问题,请参考以下文章