索引器與陣列 屬性的比較

2022-04-10 11:22:27 字數 947 閱讀 3607

索引器(indexer)

索引器允許類或結構的例項按照與資料相同的方式進行索引。索引器類似於屬性,不同之處在於它們的訪問器採用引數。所以索引器也被稱為有參屬性。

索引器與陣列的比較

1>索引器的索引值(index)型別不受限為整數

用來訪問陣列的索引值(index),其型別一定為整數,然而索引器可以定義其他型別的索引值。

2>索引器允許過載(overloading)

乙個類並不限制只能夠定義乙個索引器,只要索引器的函式簽名不同,乙個類就可以擁有很多個索引器,你可以過載它的功能。

3>索引器不是乙個變數

索引和陣列不同的地方在於,索引器並沒有直接對應引用資料儲存的地方,而陣列則有。索引器有get訪問器與set訪問器,用來指明要讀取或寫入索引器元素時,需要執行的**。

class test

}using system ;

class arrclass//沒有索引器的類

public string name}}

class indexclass//帶索引器的類

set}

//索引器與屬性不同的是,這裡沒有屬性名,而是用this表示索引。

//索引的定義與方法不同的是,用方括號,而不是圓括號(),同時索引的定義中沒有方法名,只用this。

//索引的使用像陣列,都使用,但與陣列不同的是,陣列的中只能使用整數作下標,而索引的中可以使用各種型別。

//索引也可以過載,同乙個類中的多個索引要求引數列表(簽名)必須不同,即:或者引數個數不同,或者是引數型別不同,或者引數型別的順序不同。

索引器與屬性的不同點:

標識方式:屬性以名稱來標識;索引器則以函式簽名來標識。

索引器可以被過載:因為屬性時以名稱標識的,所以不能被過載;索引器是用函式簽名標識的,因此可以過載。

索引器不可以宣告為static:屬性可以為static,而索引器永遠屬於例項成員,不能為static

索引器 索引器與陣列屬性的比較

url 索引器 indexer 索引器允許類或結構的例項按照與資料相同的方式進行索引。索引器類似於屬性,不同之處在於它們的訪問器採用引數。所以索引器也被稱為有參屬性。示例一 using system class arrclass 沒有索引器的類 public string name class in...

C 索引器 索引器與陣列屬性的比較

索引器 indexer 索引器允許類或結構的例項按照與資料相同的方式進行索引。索引器類似於屬性,不同之處在於它們的訪問器採用引數。所以索引器也被稱為有參屬性。示例一 using system class arrclass 沒有索引器的類 public string name class indexc...

屬性與索引之間的比較

來自msdn的 屬性與索引器之間的比較 索引器與屬性類似。除下表中顯示的差別外,為屬性訪問器定義的所有規則同樣適用於索引器訪問器。屬性 索引器 允許呼叫方法,如同它們是公共資料成員。允許呼叫物件上的方法,如同物件是乙個陣列。可通過簡單的名稱進行訪問。可通過索引器進行訪問。可以為靜態成員或例項成員。必...