ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
**语法**: ``` public    数据类型    属性名 {     get     {         获取属性的语句块;         return 值;     }     set     {         设置属性得到语句块;     } } ``` ## **简化**:也被称为自动属性设置 ``` public    数据类型    属性名{get;set;} ``` 示例: 定义一个图书信息类(Book),在类中定义图书编号(id)、图书名称(name)、图书价格(price)3 个字段,并分别为这 3 个字段设置属性,其中将图书名称设置为只读属性 ~~~ 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 值是否满足条件,如果满足条件则赋值,否则给字段赋默认值或进行其他操作 ~~~ //图书价格要求是大于 0 的,如果输入的值不满足条件,则将图书价格设置为 0 public double Price { get { return price; } set { if(value >= 0) { price = value; } else { price = 0; } } } ~~~ 简化(自动属性设置)后图书类中的属性设置的代码如下。 ~~~ public int Id{get; set;} public string Name{get; set;} public double Price{get; set;} ~~~ ## **只读属性** 如果要使用自动属性的方式来设置属性表示只读属性,直接省略 set 访问器即可。只读属性可以写成如下形式。 ~~~ //当于将 Id 属性的值设置成 1,并且要以分号结束 public int Id{get;}=1; ~~~ 在使用自动生成属性的方法时不能省略 get 访问器,如果不允许其他类访问属性值,则可以在 get 访问器前面加上访问修饰符 private,代码如下。 ~~~ public int Id{private get; set;} ~~~ 这样,Id 属性的 get 访问器只能在当前类中使用。