索引指示器

2021-04-17 08:24:34 字數 3178 閱讀 7194

索引指示器

其目的包括:

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...