C#中的属性
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
简介属性是代表类的实例或类中的一个数据项的成员,使用属性看起来非常像写入或读取一个字段,语法是相同的。 下面的代码展示了名称为D的类的使用,它有一个公有字段和一个公有属性,从用法无法区分它们。
与字段类似,属性有如下特征: 1、它是命名的类成员。 2、它有类型。 3、它可以被赋值和读取。 和字段不同的是,属性是一个函数成员。 1、它不为数据存储分配内存。 2、它执行代码。 一个关于属性的简单示例代码如下:
这个示例的图示如下:
在这个示例中, 属性声明和访问器set和get访问器有预定义的语法和语义。可以把set访问器想象成一个方法,带有单一的参数“设置”属性的值,get访问器没有参数并从属性返回一个值。 set访问器的特点: 1、有一个单独的、隐式的值参,名称为value,与属性的类型相同。 2、返回类型void。 get访问器的特点: 1、没有参数。 2、返回类型与属性类型相同。 属性和关联字段属性常和字段关联,一种常见的方式是在类中将字段声明为private以封装该字段,并声明一个public属性来控制从类的外部对该字段的访问,和属性关联的字段常被称为后备字段或后备存储。 属性和它们的后备字段有几种命名约定。 一种约定是两个名称使用相同的内容,但字段使用Camel大小写,属性使用Pascal大小写。(Camel大小写风格中,复合词标识符中每个单词的首字母大写,出来第一个单词,其余字母都是小写,Pascal大小写风格中,复合词中每个单词的首字母都是大写。) 另一种约定是属性使用Pascal大小写,字段使用相同标识符的Camel大小写版本,并以下划线开始。 两种约定的示例代码如下:
只读和只写属性要想不定义属性的某个访问器,可以忽略该访问器的声明。 只有get访问器的属性称为只读属性。只读属性是一种安全的,把一项数据从类或类的实例中传出,而不允许太多访问方法。 只有set访问器的属性称为只写属性。只写属性是一种安全的,把一项数据从类的外部传入类,而不允许太多的访问的方法。 两个访问器至少有一个必须定义,否则编译器会报错,如下图所示: 自动实现属性因为属性经常被关联到后备字段,C#提供了自动实现属性(automatically implemented property),允许只声明属性而不声明后备字段,编译器会为我们创建隐藏的后备字段,并且自动挂接到get和set访问器上。 自动实现属性的注意点: 1、不声明后备字段,编译器会根据属性的类型分配存储。 2、不能提供访问器的方法体,它们必须被简单地声明为分号。get担当简单的内存读,set担当简单的写。 3、只有通过访问器才能访问后备字段。因为不能用其他的方法访问它,所以实现只读和只写属性没有意义,因此必须同时提供读写访问器。 一个自动实现属性的示例,代码如下:
运行结果如下图所示: 转自https://www.cnblogs.com/mingupupu/p/17844001.html 该文章在 2025/2/15 11:16:27 编辑过 |
关键字查询
相关文章
正在查询... |