您当前的位置: 首页 >  c#

暂无认证

  • 0浏览

    0关注

    101061博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C#索引器-示例代码

发布时间:2010-11-22 16:03:00 ,浏览量:0

using System;

public class Photo //这个类是一个相片类 { private string _title; //相片标题 //先定义默认构造函数 public Photo() {     //初始化相片标题的构造方法     _title = "我是张三"; } public Photo(string title) {     //初始化相片标题的构造方法     _title = title; } public string Title {     //属性     get     {       return _title;     } } }

public class Album { //相册类 Photo[]photos; //用于存放照片的数组 public Album() {     //初始化相册大小     photos = new Photo[3]; } public Album(int capacity) {     //初始化相册大小     photos = new Photo[capacity]; } //下面定义索引用于检索照片信息,带有int参数的Photo索引器 public Photo this[int index] {     get //get方法用于根据索引从索引器中获取照片     {       if (index < 0 || index >= photos.Length)       //有效的索引       {         Console.WriteLine("索引无效");         return null;       }       else       {         return photos[index];       }     }     set     {       if (index < 0 || index >= photos.Length)       {         Console.WriteLine("索引无效");         return ; //set 无返回 所以 return 就可以了。因为这里定义的是Photo类型,不是void类型。必写返回       }       else       {         photos[index] = value;       }     } } //根据标题检索照片,但不能根据标题赋值,设置为只读索引。带有string参数的Photo索引器。 public Photo this[string title] {     get     {       //遍历数组中所有照片       foreach (Photo p in photos)       {         if (p.Title == title)         //判断           return p;       }       Console.WriteLine("没有该照片");       return null; //使用null指示失败     } } }

class Test { static void Main(string[]arsg) {     Album friends = new Album(3); //创建相册大小为3     //创建3张照片     Photo first = new Photo("逍遥");     Photo second = new Photo("太子");     Photo third = new Photo("姚佳");     friends[0] = first;     friends[1] = second;     friends[2] = third;     //按照索引进行查询     Photo objPhoto = friends[2];     Console.WriteLine(objPhoto.Title);     //按名称进行检查     Photo obj2Photo = friends["太子"];     Console.WriteLine(obj2Photo.Title); } }

定义索引器的时候使用this关键字,get和set访问器和属性的访问器相同,索引器和数组的属性有点相似,只是数组只通过索引检索,而索引器可以通过重载,自定义访问方式。

注意:将数组作为对象对待更加直观时,才使用索引器。

关注
打赏
1655516835
查看更多评论
立即登录/注册

微信扫码登录

0.0499s