在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
使用索引操作 [] 访问包含在一个标准数组中的各个子项。 定义:把能使用索引操作符 [] 访问子项的方法称为索引器方法 1、自定义索引器方法(this): public class PeopleCollection : IEnumerable { private ArrayList arPeople= new ArrayList(); // 类的自定义索引器 public Person this [int index] // 除了多个this关键字外,和属性声明很相似 { get{ return (Person)arPeople[index];} set{ arPeople.Insert(index,value);} // 使用ArrayList的Insert()方法 } } 2、泛型类型直接支持索引器方法: List<Person> myPeople=new List<Person>(); myPeople.Add(new Person {"lisa","simpson",19}); myPeople.Add(new Person {"lilei","simpson",20}); // 使用索引器修改第一个值 myPeople[0]=new Person {"zhangsan","simpson",20} ; ... 3、使用字符串值索引对象 如果直接使用泛型 Dictionary<TKey,TValue>类型,可以直接获得索引器方法功能,而不用自己去构建 public class PeopleCollection : IEnumerable { private Dictionary<string,Person> listPeople= new Dictionary<string,Person>(); // 基于一个字符串索引返回一个Person public Person this [string name] { get{ return (Person)listPeople[name];} set{ listPeople[name]=value;} } ... } 4、重载索引器方法 索引器方法可以在单个类或结构上被重载。 //DataTableCollection类型,重载的索引器 public DataTable this[string name] {get;} public DataTable this[string name,string tableNamespace]{get;} public DataTable this[int index]{get;} 5、多维索引器:典型代表是ADO.NET中的 DataTable private int[,] myArray = new int[10,10]; public int this[int row ,int colum] {/* 从二位数组中取值或赋值*/} 6、接口类型上定义索引器 在接口定义索引器,其实现类就可以提供自定义实现 public interface IStringContainer { //该接口定义了一个索引器,该索引器基于数字索引返回字符串 string this[int index] {get;set;} }
|
请发表评论