1. 概述
索引器允許類或結構的例項就像陣列一樣進行索引。索引器類似於屬性,不同之處在於它們的訪問器採用引數。索引器在語法上方便您建立客戶端應用程式可將其作為陣列訪問的類、結構或介面。索引器經常是在主要用於封裝內部集合或陣列的型別中實現的。
例如,假定具有乙個名為 temprecord 的類,此類表示在 24 小時內的 10 個不同時間記錄的華氏度。此類包含乙個表示溫度的 float 型別的名為「temps」的陣列和表示記錄溫度的日期的 datetime。通過在此類中實現乙個索引器,客戶端可以通過 float temp = tr[4] 而不是 float temp = tr.temps[4] 語法訪問 temprecord 例項中的溫度。索引器表示法不僅簡化了客戶端應用程式的語法,還使其他開發人員能夠更加直觀地理解類及其用途。使用索引器可以用類似於陣列的方式為物件建立索引。
get 訪問器返回值。set 訪問器分配值。this 關鍵字用於定義索引器。value 關鍵字用於定義由 set 索引器分配的值。
索引器不必根據整數值進行索引,由您決定如何定義特定的查詢機制。索引器可被過載索引器可以有多個形參,例如當訪問二維陣列時。
2. 示例:
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace nettest
= ", i, temprecord[i]);
}else
is out of range", i);
}}
//uncomment this code to see how the .net framework handles indexer exceptions
//try
// = ", temprecord[temprecord.length]);
//}//catch (system.argumentoutofrangeexception e)//
daycollection week = new
daycollection();
system.console.writeline(week["fri"]);
system.console.writeline(week["made-up day"]);
}}
class
temprecord;
// auto-implemented property
system.datetime date
// to enable client code to validate input
// when accessing your indexer.
public
int length
}// indexer declaration.
// input parameter is validated by client
// code before being passed to the indexer.
public
float
this[int index]
set}
}
//c# 並不將索引型別限制為整數。例如,對索引器使用字串可能是有用的。通過搜尋集合內的字串並返回相應的值,可以實現此類索引器。
//由於訪問器可被過載,字串和整數版本可以共存。
class
daycollection;
// this method finds the day or returns -1
private
int getday(string testday)
i++;
}return -1;
}
// the get accessor returns an integer for a given string
public
intthis[string day]
}}
}
C 拾遺系列 6 迭代器
1.示例 using system using system.collections.generic using system.linq using system.text using system.collections namespace nettest public class testite...
拾遺系列(五)Tips
載入原圖 uiimage image uiimage imagenamed 拉伸處理 說明需要保護的區域 image image resizableimagewithcapinsets uiedgeinsetsmake 30,30,30,30 resizingmode uiimageresizing...
C語言拾遺
main函式引數 c語言規定main函式引數只能有兩個,習慣上這兩個引數寫成argc和argv。c語言還規定argc必須是整形變數,argv必須是指向字串的指標陣列。因此,main函式的函式頭應該寫為 main argc,argv int argc char argv 或者 main int arg...