屬性和索引

2021-08-20 05:48:28 字數 1984 閱讀 6695

屬性是代表類的例項或類中的乙個資料項的成員,使用屬性看起來非常像寫入或讀取乙個字段,語法是相同的。

與字段相似之處:

●它是命名的類成員。

●它有型別。

●它可以被賦值和讀取。

與字段不同之處:

●它不為資料儲存分配記憶體。

●它執行**。

屬性是指定的一組兩個匹配的,稱為訪問器的方法

●set訪問器為屬性賦值

●get訪問權從屬性獲取值。

set和get訪問權有預定義的語法和語義。可以把set訪問器想象成乙個方法,帶有單一引數「設定」屬性的值。get訪問器沒有引數並從屬性返回乙個值。

●set訪問器:

■擁有乙個單獨的,隱式的值參,名稱為value,與屬性的型別形同;

■擁有乙個返回型別void。

●get訪問器:

■沒有引數;

■擁有乙個與屬性型別系統的返回型別。

注意事項

● get訪問器的所有執行路徑必須包含一條return語句,返回乙個屬性型別的值。

●訪問器set和get可以以任意順序宣告,並且,除了這兩個訪問器外在屬性上不允許有其他方法。

class c1

get }}

public class program

",c.myvalue);

= 20;

"myvalue: ", c.myvalue);

}不能顯示的呼叫get和set訪問器

將字段宣告為private以封裝字段,並宣告乙個public屬性來控制從類的外部對該字段訪問。和屬性關聯的字段被稱為後備欄位或後備儲存。

class c1

get }}

public class program

",c.myvalue);

= 20;

"myvalue: ", c.myvalue);

}}

屬性訪問器並不侷限與僅僅對管理的後備欄位進傳出資料。訪問器get和set能執行任何計算。或不執行任何計算。唯一必須的行為是get訪問需要返回乙個屬性型別的值。

要想不定義屬性的某個訪問器,可以忽略該訪問器的宣告。

● 只有get訪問器的屬性稱為唯讀屬性,唯讀屬性是一種安全的,把一項資料從類或類的例項中傳出去。而不允許太多訪問方法。

● 只有set訪問器的屬性稱為只寫屬性。只寫屬性是一種安全的,把一項資料從類的外部傳入類,而不允許太多訪問的方法。

●連個訪問器中至少有乙個必須定義,否則編譯會產生一條錯誤訊息。

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

●屬性是函式型成員而不是資料成員,允許你處理輸入和輸出,而公共字段不行。

●屬性可以唯讀或只寫,而字段不行。

●編譯後的變數和編譯後的屬性語義不同。

因為屬性經常被關聯到後備字段,c#提供了自動實現屬性,允許值宣告屬性而不宣告後備字段,編譯會為你建立隱藏的後備字段,並且自動掛到get和set訪問器上。

自動實現屬性的要點:

●不宣告後備字段——編譯器根據屬性的型別分配儲存。

●不能提供訪問器的方法體——它們必須被簡單的宣告為分號。get擔當簡單的記憶體讀,set擔當簡單的寫。

●除非通過訪問器,否則不能訪問後備字段。因為不能用其他方法訪問它,所以實現唯讀只寫屬性沒有意義,因此必須同時以提供讀寫訪問器。

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

●不能訪問類的例項成員——雖然他們能被例項成員訪問。

●不管類是否有例項,它們都是存在的。

●當從類的外部訪問時,必須使用類名引用,而不是例項名。

c 屬性和索引器

1 屬性 所謂屬性其實就是特殊的類成員,它實現了對私有類域的受控訪問。在c 語言中有兩種屬性方法,其一是get,通過它可以返回私有域的值,其二是set,通過它就可以設定私有域的值。比如說,以下面的 為例,建立學生姓名屬性,控制對name欄位的受控訪問 2 索引器 簡單說來,所謂索引器就是一類特殊的屬...

c 屬性和索引器

1 屬性 所謂屬性其實就是特殊的類成員,它實現了對私有類域的受控訪問。在c 語言中有兩種屬性方法,其一是get,通過它可以返回私有域的值,其二是set,通過它就可以設定私有域的值。比如說,以下面的 為例,建立學生姓名屬性,控制對name欄位的受控訪問 code using system public...

c 的屬性和索引器

1 屬性 所謂屬性其實就是特殊的類成員,它實現了對私有類域的受控訪問。在c 語言中有兩種屬性方法,其一是get,通過它可以返回私有域的值,其二是set,通過它就可以設定私有域的值。比如說,以下面的 為例,建立學生姓名屬性,控制對name欄位的受控訪問 屬性定義 訪問修飾符 返回型別 屬性名 get ...