熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

實戰開發C# 索引器學習筆記

2013-11-13 10:13:19  來源: .NET編程 

  簡單說來所謂索引器就是一類特殊的屬性通過它們你就可以像引用數組一樣引用自己的類
聲明方法如下(與屬性相似)

//修飾符 類型名稱 this [類型名稱 參數名]
public type this [int index]
{
get
{
//
}
set
{
//
}
}
用例子簡單說明
using SystemCollections;

static void Main(string[] args)
{
//調用IntBitsIntBits方法意為將賦給bits
IntBits bits = new IntBits();
//獲得索引的bool值此時 bits[]將調用索引器public bool this[int index]中的Get值為True
bool peek = bits[];
ConsoleWriteLine(bits[] Value: {}peek);
bits[] = true;
ConsoleWriteLine();

ConsoleReadKey();
}

struct IntBits
{
private int bits;
public IntBits(int initialBitValue)
{
bits = initialBitValue;
ConsoleWriteLine(bits);
}
//定義索引器
//索引器的屬性名是this意思是回引類的當前實例參數列表包含在方括號而非括號之內
public bool this [int index]
{
get
{
return true;
}
set
{
if (value)
{
bits = ;
}
}
}

備注:

       所有索引器都使用this關鍵詞來取代方法名Class或Struct只允許定義一個索引器而且總是命名為this 

       索引器允許類或結構的實例按照與數組相同的方式進行索引索引器類似於屬性不同之處在於它們的訪問器采用參數 

       get 訪問器返回值set 訪問器分配值 

       this 關鍵字用於定義索引器 

       value 關鍵字用於定義由 set 索引器分配的值 

       索引器不必根據整數值進行索引由您決定如何定義特定的查找機制

索引器可被重載 

       索引器可以有多個形參例如當訪問二維數組時 

       索引器可以使用百數值下標而數組只能使用整數下標如下列定義一個String下標的索引器
public int this [string name] {}

  屬性和索引器 

       屬性和索引器之間有好些差別 

       類的每一個屬性都必須擁有唯一的名稱而類裡定義的每一個索引器都必須擁有唯一的簽名(signature)或者參數列表(這樣就可以實現索引器重載) 

       屬性可以是static(靜態的)而索引器則必須是實例成員 

       為索引器定義的訪問函數可以訪問傳遞給索引器的參數而屬性訪問函數則沒有參數


From:http://tw.wingwit.com/Article/program/net/201311/12958.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.