屬性是代表類的例項或類中的乙個資料項的成員。屬性指的是一組兩個匹配的、稱為訪問器的方法:
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的成員不能直接在外...