最近看面試題也好,敲手頭書上的例子也好,都讓我看到了索引器這個概念,原來沒有接觸過,今天就來看看什么是C#中的索引器
索引器允許類或結構的實例就像數組一樣進行索引。 索引器類似于屬性,不同之處在于他們的取值函數采用參數
索引器經常是在主要用于封裝內部集合或數組的類型中實現的。假如,假定具有一個名為TemPRecord的類,此類表示在24小時內的10個不同時間記錄的華氏溫度。此類包含一個表示溫度的Float類型的名為“temps”的數組和表示記錄溫度的日期的DateTime
通過在此類中實現一個索引器,客戶端可以通過float temp=tr[4]而不是float temp=tr.temps[4]語法訪問此類實例出對象的溫度

1.相同點
1).索引和屬性都不用分配內存位置來存儲。
2).索引和屬性都是為類的其它成員提供訪問控制的。
3).索引和屬性都有get訪問器和set訪問器,它們可以同時聲明兩個訪問器,也可以只聲明其中一個。2.不同點
1).屬性通常表示單獨的數據成員,而索引表示多個數據成員。2).屬性既可以聲明為實例屬性,也可以聲明為靜態屬性,而索引不能聲明為靜態的。3).屬性有簡潔的自動實現屬性,而索引必須聲明完整。4).get訪問器:屬性的 get 訪問器沒有參數,索引器的 get 訪問器具有與索引器相同的形參表。 5).set訪問器:屬性的 set 訪問器包含隱式 value 參數。除了值參數外,索引器的 set 訪問器還具有與索引器相同的形參表。新聞熱點
疑難解答