属性经常与字段连用,并提供了 get
访问器和 set
访问器,分别用于获取或设置字段的值。
get
访问器和 set
访问器的使用与方法非常类似,可以在操作字段时根据一些规则和条件来设置或获取字段的值。
此外,为了保证字段的安全性,还能选择省去get
访问器或 set
访问器。
定义属性的语法形式如下:
public 数据类型 属性名 { get { 获取属性的语句块; return 值; } set { 设置属性得到语句块; } }
其中:
get{}
:get访问器,用于获取属性的值,需要在get
语句最后使用return
关键字返回一个与属性数据类型相兼容的值。若在属性定义中省略了该访问器,则不能在其他类中获取私有类型的字段值,因此也称为只写属性。set{}
:set 访问器,用于设置字段的值,这里需要使用一个特殊的值value
,它就是给字段赋的值。在set
访问器省略后无法在其他类中给字段赋值,因此也称为只读属性。
通常属性名的命名使用的是 Pascal
命名法,单词的首字母大写,如果是由多个单词构成,每个单词的首字母大写。
在定义字段属性时,属性的作用就是为字段提供 get
、 set
访问器,由于操作都比较类似,在 C#
语言中可以将属性的定义简化成如下写法:
public 数据类型 属性名{get;set;}
这种方式也被称为自动属性设置。
示例如下:
public int Id{get; set;} public string Name{get; set;} public double Price{get; set;}
如果要使用自动属性的方式来设置属性表示只读属性,直接省略 set
访问器即可。只读属性可以写成如下形式:
public int Id{get;}=1;
如果不允许其他类访问属性值,则可以在 get
访问器前面加上访问修饰符 private
,代码如下:
public int Id{private get; set;}
这样, Id
属性的 get
访问器只能在当前类中使用。