索引:
索引,索的是实例化的编号,派生的子类,第 [ N ] 个儿子。
用数组的方式访问实例。
返回的是实例的,一个属性值。
声明: this [ 索引 ]
public string this[int index]{get{}set{}}public int this[string name] //根据名字,确定实例编号{get{int index = 0;while(index < size){if (namelist[index] == name){return index;}index++;}return index;}}
using System;
namespace IndexerApplication
{class IndexedNames{private string[] namelist = new string[size];static public int size = 10;public IndexedNames(){for (int i = 0; i < size; i++)namelist[i] = "N. A.";}public string this[int index]{get{string tmp;if( index >= 0 && index <= size-1 ){tmp = namelist[index];}else{tmp = "";}return ( tmp );}set{if( index >= 0 && index <= size-1 ){namelist[index] = value;}}}static void Main(string[] args){IndexedNames names = new IndexedNames();names[0] = "Zara";names[1] = "Riz";names[2] = "Nuha";names[3] = "Asif";names[4] = "Davinder";names[5] = "Sunil";names[6] = "Rubic";for ( int i = 0; i < IndexedNames.size; i++ ){Console.WriteLine(names[i]);}Console.ReadKey();}}
}
2重载索引器(Indexer)
using System;
namespace IndexerApplication
{class IndexedNames{private string[] namelist = new string[size];static public int size = 10;public IndexedNames(){for (int i = 0; i < size; i++){namelist[i] = "N. A.";}}public string this[int index]{get{string tmp;if( index >= 0 && index <= size-1 ){tmp = namelist[index];}else{tmp = "";}return ( tmp );}set{if( index >= 0 && index <= size-1 ){namelist[index] = value;}}}public int this[string name]{get{int index = 0;while(index < size){if (namelist[index] == name){return index;}index++;}return index;}}static void Main(string[] args){IndexedNames names = new IndexedNames();names[0] = "Zara";names[1] = "Riz";names[2] = "Nuha";names[3] = "Asif";names[4] = "Davinder";names[5] = "Sunil";names[6] = "Rubic";// 使用带有 int 参数的第一个索引器for (int i = 0; i < IndexedNames.size; i++){Console.WriteLine(names[i]);}// 使用带有 string 参数的第二个索引器Console.WriteLine(names["Nuha"]);Console.ReadKey();}}
}
3
4
5