C#索引器
using System; using System.Collections.Generic; using System.Text; namespace Index { class sample<T> //这个类告诉我们如何使用客户端代码索引器 { private T[] arr = new T[100]; public T this[int i] //索引器的签名由其形参的数量和类型组成。 { get { return arr[i];} set { arr[i] = value;} } } class IndexerClass { private int[] arr = new int[100]; //定义数组 public int this[int index] //索引器声明 { get { if (index < 0 || index >100) return 0; return arr[index]; } set { if (!(index < 0 || index > 100)) arr[index] = value; } } } class String_index { string[] days = { "Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat" }; private int GetDay(string testday) { int i = 0; foreach(string day in days) { if (day == testday) return i; i++; } return -1; } public int this[string day] { get{ return GetDay(day); } } } class Program { static void Main(string[] args) { sample<string> string_value = new sample<string>(); string_value[0] = "Hello world"; System.Console.WriteLine(string_value[0]); IndexerClass test = new IndexerClass(); //调用索引器初始化第2、4个数据 test[3] = 123; test[5] = 1024; for (int i = 0; i <= 10; i++ ) { System.Console.WriteLine("数据为#{0} = {1}", i, test[i]);} String_index week = new String_index(); System.Console.WriteLine("这是一周的第{0}天", week["Tues"]); Console.ReadKey(); } } }
来源:http://blog.csdn.net/seawaywjd/article/details/7061155