public 数据类型 属性名
{
get
{
获取属性的语句块;
return 值;
}
set
{
设置属性得到语句块;
}
}
namespace code_1 { class Book { private int id; private string name; private double price; //设置图书编号属性 public int Id { get { return id; } set { id = value; } } //设置图书名称属性 public string Name { get { return name; } } //设置图书价格属性 public double Price { get { return price; } set { price = value; } } } }在上面的实例中,在给字段赋值时直接将 value 值赋给字段,如果要对赋给字段的值加以限制,可以先判断 value 值是否满足条件,如果满足条件则赋值,否则给字段赋默认值或进行其他操作。
public double Price { get { return price; } set { if(value >= 0) { price = value; } else { price = 0; } } }通过上面的实例可以看出,在定义字段属性时,属性的作用就是为字段提供 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;这里相当于将 Id 属性的值设置成 1,并且要以分号结束。但是,在使用自动生成属性的方法时不能省略 get 访问器,如果不允许其他类访问属性值,则可以在 get 访问器前面加上访问修饰符 private,代码如下。
public int Id{private get; set;}这样,Id 属性的 get 访问器只能在当前类中使用。
本文链接:http://task.lmcjl.com/news/6813.html