• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#索引器方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

使用索引操作 [] 访问包含在一个标准数组中的各个子项。

定义:把能使用索引操作符 [] 访问子项的方法称为索引器方法

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;}
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
在C#代码中应用Log4Net(一)简单使用Log4Net发布时间:2022-07-10
下一篇:
如何在Delphi中调用C#生成的DLL类库发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap