C#字段属性的特性

Posted 工控上位机学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#字段属性的特性相关的知识,希望对你有一定的参考价值。

工控课堂

工控课堂【www.gkket.com】工程师必备网站

电气工控自动化-超万元免费资料

一、字段的定义

字段是在类或结构中直接声明的任意类型的变量。

声明一个字段,可以用访问修饰符+类型+变量名称来声明,下图是一个简单的示例:

C#字段、属性的特性


C#字段、属性的特性



二、属性的定义

属性语法是字段的自然延伸,属性需要有get或者set的访问器。

声明一个属性,可以用访问修饰符+类型+变量名称来声明,下图是一个简单的示例:

C#字段、属性的特性


C#字段、属性的特性



三、字段的特性

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.属性还可以使用缓存式定义,这对于一些特殊情形下,非常有用,它通常会结合字段来进行缓存。如下图:

C#字段、属性的特性


C#字段、属性的特性



4.字段是变量,但属性不是变量噢。变量是可以使用ref、out关键字传递的,所以字段可以,但属性不可以。

6.属性可以抽象、虚化、密封,即属性可以加上abstract、virtual、sealed关键字。


五、其它的高级特性

1.老是使用get访问器,我是不是等于每次都调用一下方法,这样是不是增加了额外开销?

答:是等于调用方法,但不会增加额外开销。编译器已经自动优化了get访问器,不会产生额外开销。但是当该属性声明为virtual关键字,由于编译器搞不清楚会不会被子类重写属性,所以,这种情况下会产生额外开销。

2.编写属性时,我可以在get访问器更改缓存字段的值吗?

C#字段、属性的特性


C#字段、属性的特性



答:如上图,您可以更改缓存字段_number的值。但是这是一种非常差劲的编码风格。您不应该去更改_number字段的值,它的作用就让它仅仅用于记录缓存就好。

转发是最大的鼓励!谢谢您的支持!

重要通知

想加入工控上位机学习技术交流群

请添加班长为好友

并备注:地区-行业-姓名昵称获取进群资格。

C#字段、属性的特性

工控上位机学习
专业专注分享

      

——————————————————————

 来源:网络-百度文库,侵删!

▣ 声明:本文素材系网络收集,工控上位机学习编辑整理。文中所用视频、图片、文字版权归原作者所有。但因转载众多,无法确认真正原始作者,故仅标明转载来源。如涉及作品版权问题,烦请及时联系17621634088(微信同号),我们将即刻确认版权并按国家相关规定支付稿酬!


C#字段、属性的特性

她们都关注了,你还等什么?

C#字段、属性的特性 C#字段、属性的特性 C#字段、属性的特性 C#字段、属性的特性 C#字段、属性的特性 C#字段、属性的特性 C#字段、属性的特性

 猛戳阅读原文,开启电气工控自动化之路

以上是关于C#字段属性的特性的主要内容,如果未能解决你的问题,请参考以下文章

C#访问修饰符

C# 特性[Attribute]

C# 自定义特性(Attribute)详解

Unity常用标签

C#自定义特性实例

属性和字段