索引指示器
其目的包括:
1.了解什麼是
索引指示器
2.如何實現
索引指示器
3.過載
索引指示器
4.了解如何實現多引數的
索引指示器
索引指示器並不難使用。它們的用法跟陣列相同。在乙個類內部,你可以按照你的意願來管理一組資料的集合。這些物件可以是類成員的有限集合,也可以是另外乙個陣列,或者是一些複雜的資料結構。不考慮類的內部實現,其資料可以通過使用
索引指示器來獲得。如下是乙個例子:
1.清單 11-1.
索引指示器的例子:intindexer.cs
using system;
///
/// a ****** indexer example.
///
class intindexer
}public string this[int pos]
set}
static void main(string args)
]: ", i, myind[i]);}}
} 說明
1.清單 11-1演示了如何實現乙個
索引指示器, intindexer類有個名為mydata的字串陣列,該陣列是私有成員,因而其外部成員是看不見的。該陣列是在建構函式中進行初始化的,該建構函式帶有乙個整型size引數,用來初始化mydata陣列,初始化時 把單詞"empty"作為每個陣列元素的值。
2.intindexer類的下一成員是
索引指示器(indexer),由關鍵字this和方括號[int pos]標識出來。該成員帶有乙個位置引數pos。正如你已經猜測到,indexer的實現同屬性一樣。indexer有get 和set訪問操作,就同屬性中的用法一樣。
索引指示器(indexer)返回乙個字串,在定義
索引指示器時,string這個型別名標誌著其返回型別為字串型別。
3.main()方法完成如下事情:初始化乙個新的intindexer物件,新增一些值,並且列印出結果。其輸出結果如下:
indexer output
myind[0]: empty
myind[1]: empty
myind[2]: empty
myind[3]: another value
myind[4]: empty
myind[5]: any value
myind[6]: empty
myind[7]: empty
myind[8]: empty
myind[9]: some value
4.在不少程式語言中,通常都是使用整數作為下標來訪問作為陣列元素的,但c#的
索引指示器不僅能夠做到這一點,而且還能夠更進一步。 定義
索引指示器時,可以帶有多個引數,每個引數的型別可以不同。新增的引數由逗號隔開,同方法中的的參數列一樣。
索引指示器的合法的引數型別包括:整型,列舉型別和字串。另外,
索引指示器也可以被過載。在清單 11-2中,我們修改了前面的程式,以便用來過載
索引指示器 ,從而可以接受不同型別的引數。
2.清單 11-2. 過載的
索引指示器: ovrindexer.cs
using system;
///
/// implements overloaded indexers.
///
class ovrindexer
}public string this[int pos]
set}
public string this[string data]
}return count.tostring();
}set}}
}static void main(string args)
]: ", i, myind[i]);
}console.writeline("/nnumber of /"no value/" entries: ", myind["no value"]);}}
說明 1.清單 11-2 演示了如何過載
索引指示器。
帶有整型引數pos的第乙個
索引指示器同清單11-1中的一樣,但是,該程式中有個帶有字串引數的新的
索引指示器。對於這個新的
索引指示器來說,其get操作返回的是同引數值data相匹配的成員的個數。 set操作把陣列中同引數值匹配的元素值該變為value值。
2.在清單11-2的main()方法中,演示了過載的
索引指示器,它接受字串引數。
該過載的
索引指示器呼叫了set操作,通過使用下列命令: myind["empty"] = "no value"; set操作把"no value"值賦給myind 類中所有的值為"empty"的成員。 myind類的每個成員都已經輸出之後,就把最後乙個資料輸出到控制台,該資料統計陣列成員值為"no value"的個數。 使用如下命令:myind["no value"],就可呼叫get操作。輸出結果如下:
indexer output
myind[0]: no value
myind[1]: no value
myind[2]: no value
myind[3]: another value
myind[4]: no value
myind[5]: any value
myind[6]: no value
myind[7]: no value
myind[8]: no value
myind[9]: some value
number of "no value" entries: 7
3.在清單 11-2中,兩個
索引指示器共處在同乙個類中, 這是可以的,因為它們有不同的特徵。
乙個索引指示器的特徵是通過
索引指示器參數列中的引數個數和型別表現出來的。類能夠辨別出其特徵,並呼叫相應的
索引指示器。帶有多個引數的
索引指示器可以用如下格式來實現:
public object this[int param1, ..., int paramn]
set}
小結 現在你已經了解了
索引指示器是用來做什麼的,以及其用法。如同陣列的用法一樣,你可以建立
索引指示器來訪問類的成員。本文也提到了
索引指示器的過載和多引數
索引指示器。
索引指示器
官方描述 索引器允許類或結構的例項就像陣列一樣進行索引。索引器形態類似於,不同之處在於它們的取值函式採用引數。這一功能在建立集合類的場合特別有用,而在其他某些情況下,比如處理大型檔案或者抽象有些資源等,能讓類具有類似陣列行為也是非常有用的。大致結構 this argument list getset...
C 索引指示器
什麼是索引指示器?答 實現索引指示器 indexer 的類可以象陣列那樣使用其實例後的物件,但與陣列不同的是索引指示器的引數型別不僅限於int。簡單來說,其本質就是乙個含引數屬性 示例 using system using system.collections.generic using syste...
進度指示器
uiprogressview 進度指示器 uiprogressview 與uiactivityindicatorview 相似,只不過它提供了乙個介面讓你可以顯示乙個類似進度條的東西,這樣就能讓使用者知道當前操作完成了多少 告知使用者離操作結束還多遠 一.建立 uiprogressview prog...