C 中的屬性

2021-10-03 05:27:08 字數 2588 閱讀 1292

屬性是代表類的例項或類中的乙個資料項的成員。屬性指的是一組兩個匹配的、稱為訪問器的方法:

public  返回型別  識別符號

set訪問器總是:

get訪問器總是:

屬性跟字段的相同點:

屬性跟字段的不相同點:

訪問器的重點如下:

寫入和讀取屬性的訪問器時,會被隱式呼叫:

注意: 不能顯式地呼叫訪問器,就跟呼叫函式那樣, 會出現編譯錯誤。

namespace ch05ex03

get}

}class program}}

我們經常將類中的字段宣告private以封裝該欄位, 然後宣告乙個public的屬性來控制從類的外部對該字段的訪問。和屬性關聯的字段稱為後備欄位或後備儲存。屬性和後備字段需要注意的問題有:

private  double namefield = 3.14; //第一種約定

public double namefild

get}

private  double _namefield = 3.14;  // 第二種約定

public double namefild

get}

屬性訪問器不僅僅只可以對關聯的字段傳入傳出資料, 還可以執行任何計算,或者不執行任何計算。但是get訪問器必須返回乙個屬性型別的值。

下面看乙個更有用的示例:

namespace ch05ex03

get}

}class program}}

屬性比公共字段更好,理由如下:

自動實現屬性允許只宣告屬性而不宣告後備字段。 編譯器會為你建立隱藏的後備字段, 並且自動掛接到get 和 set 訪問器上。自動實現屬性的要點如下:

namespace ch05ex03

}class program}}

除了方便之外,自動實現的屬性還允許您輕鬆地插入乙個屬性,本來那裡您可能想要宣告乙個公共欄位的。

屬性也可以宣告為 static, 靜態屬性的訪問器和所有靜態成員一樣,具有以下特點:

namespace ch05ex03

public void printvalue()

");}

}class program

");d.myvalue = 10; // 在類的外部設定靜態屬性的值

writeline($"再輸出靜態屬性的值:");

readkey();}}

}

再看乙個示例程式:

namespace ch05ex03

"); //writeline($"輸出bb的值:"); 錯誤,靜態成員函式不可以輸出非靜態成員資料

}public void printvalue()

"); // 非靜態的成員函式可以輸出靜態欄位的值

writeline($"輸出aa的值:");

}public static int myvalue

get}

}class program

");d.myvalue = 100; // 在類的外部設定靜態屬性的值

writeline($"再輸出靜態屬性的值:");

d myd = new d();

myd.printvalue();

readkey();}}

}輸出結果為:

先輸出靜態屬性的值:0

再輸出靜態屬性的值:100

輸出bb的值:100

輸出aa的值:12

C 中的屬性

1.屬性就是對字段的封裝,其本質就是乙個get方法和乙個set方法。value是個關建字,它其實就是乙個引數,用來指代使用者輸入的內容。using system namespace 2019 10 26set public int age set 2.即使不需要做任何邏輯驗證,也不能把字段宣告稱pu...

C 中類的屬性

關於為什麼要使用屬性 用於替代原c 或者其它程式語言中的訪問器和變異器。一直以來很多程式語言都是用訪問器來實現對私有變數操控,比如setspeed 及getspeed 這是兩種方法,以前c 的寫法是 int speed int maxspeed 100 bool setspeed int s els...

c 中屬性的應用

屬性,官方的解釋是 它提供靈活的機制來讀取 編寫或計算某個私有欄位的值。可以像使用公共資料成員一樣使用屬性,但實際上它們是稱作 訪問器 的特殊方法。這使得可以輕鬆訪問資料,此外還有助於提高方法的安全性和靈活性。我們可以簡單的理解成它是訪問類中私有成員的一種工具。類中個private的成員不能直接在外...