**語法**:
```
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 訪問器只能在當前類中使用。
- Visual Studio 2022安裝到非C盤
- .net平臺區別
- 常用單詞
- 關鍵字
- 操作符(運算符)
- 標識符(命名規范)
- 開始
- 變量
- 常量
- 數據類型
- 值類型
- 變量數據類型
- 枚舉類型enum(常量集合)
- 結構類型struct(結構體)
- 元組類型
- 可null類型(T?)
- 引用類型
- 數組(array)
- 集合(List)
- 內置引用類型
- object
- string
- Dynamic(動態類型)
- delegate委托(代理)類型
- 自定義引用類型
- 接口(interface)
- 類class
- record(定義一個引用類型)
- 指針類型(僅用于非安全代碼)
- get和set訪問器
- delegate委托
- delegate實現發布訂閱與事件
- 類型轉換
- 合并操作符??
- 類相關
- Partial 部分類
- 類定義以及訪問修飾符(封裝)
- abstract抽象類與sealed密封類
- virtual虛方法
- 接口interface
- C# 預處理器指令
- C#技術棧
- 判斷(流程控制)與三元運算
- if
- switch
- 三元運算
- 循環
- while 循環
- for循環
- foreach循環
- do...while 循環
- 文件操作
- 其他
- 多開