什么是索引指示器


Posted in 面试题 onAugust 20, 2012
实现索引指示器(indexer)的类可以象数组那样使用其实例后的对象,但与数组不同的是索引指示器的参数类型不仅限于int
简单来说,其本质就是一个含参数属性
示例:
using System;
using System.Collections.Generic;
using System.Text;
namespace Example08
{
public class Point
{
private double x, y;
public Point(double X, double Y)
{
x = X;
y = Y;
}
//重写ToString方法方便输出
public override string ToString()
{
return String.Format(“X: {0} , Y: {1}”, x, y);
}
}
public class Points
{
Point[] points;
public Points(Point[] Points)
{
points = Points;
}
public int PointNumber
{
get
{
return points.Length;
}
}
//实现索引访问器
public Point this[int Index]
{
get
{
return points[Index];
}
}
}
//索引指示器的实质是含参属性,参数并不只限于int
class WeatherOfWeek
{
public string this[int Index]
{
get
{
//注意case段使用return直接返回所以不需要break
switch (Index)
{
case 0:
{
return “Today is cloudy!”;
}
case 5:
{
return “Today is thundershower!”;
}
default:
{
return “Today is fine!”;
}
}
}
}
public string this[string Day]
{
get
{
string TodayWeather = null;
//switch的标准写法
switch (Day)
{
case “Sunday”:
{
TodayWeather = “Today is cloudy!”;
break;
}
case “Friday”:
{
TodayWeather = “Today is thundershower!”;
break;
}
default:
{
TodayWeather = “Today is fine!”;
break;
}
}
return TodayWeather;
}
}
}
class Program
{
static void Main(string[] args)
{
Point[] tmpPoints = new Point[10];
for (int i = 0; i {
tmpPoints[i] = new Point(i, Math.Sin(i));
}
Points tmpObj = new Points(tmpPoints);
for (int i = 0; i {
Console.WriteLine(tmpObj[i]);
}
string[] Week = new string[] { “Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Staurday”};
WeatherOfWeek tmpWeatherOfWeek = new WeatherOfWeek();

for (int i = 0; i
{

Console.WriteLine(tmpWeatherOfWeek[i]);

}

foreach (string tmpDay in Week)

{

Console.WriteLine(tmpWeatherOfWeek[tmpDay]);

}

Console.ReadLine();

}

}

}

结果:
X: 0 , Y: 0
X: 1 , Y: 0.841470984807897
X: 2 , Y: 0.909297426825682
X: 3 , Y: 0.141120008059867
X: 4 , Y: -0.756802495307928
X: 5 , Y: -0.958924274663138
X: 6 , Y: -0.279415498198926
X: 7 , Y: 0.656986598718789
X: 8 , Y: 0.989358246623382
X: 9 , Y: 0.412118485241757
Today is cloudy!
Today is fine!
Today is fine!
Today is fine!
Today is fine!
Today is thundershower!
Today is cloudy!
Today is fine!
Today is fine!
Today is fine!
Today is fine!
Today is thundershower!
Today is fine!

Tags in this post...

面试题 相关文章推荐
Collection和Collections的区别
May 02 面试题
新东网科技Java笔试题
Jul 13 面试题
VC++笔试题
Oct 13 面试题
请写出 BOOL flag 与"零值"比较的 if 语句
Feb 29 面试题
将一个文本文件的内容按倒序打印出来
Jan 05 面试题
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
May 01 面试题
TCP协议通讯的过程和步骤是什么
Oct 18 面试题
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
Jan 21 面试题
remote接口和home接口主要作用
May 15 面试题
Weblogic和WebSphere不同特点
May 09 面试题
线程同步的方法
Nov 23 面试题
DELPHI面试题研发笔试试卷
Nov 08 面试题
new修饰符是起什么作用
Jun 28 #面试题
Can a struct inherit from another struct? (结构体能继承结构体吗)
Sep 25 #面试题
C#笔试题集合
Jun 21 #面试题
this关键字的含义
Apr 08 #面试题
Can a struct inherit from another class? (结构体能继承类吗)
Jul 22 #面试题
.net C#面试题
Aug 28 #面试题
可以使用抽象函数重写基类中的虚函数吗
Jun 02 #面试题
You might like
基于php验证码函数的使用示例
2013/05/03 PHP
ThinkPHP中使用ajax接收json数据的方法
2014/12/18 PHP
php实现微信公众号主动推送消息
2015/12/31 PHP
JS代码优化技巧之通俗版(减少js体积)
2011/12/23 Javascript
原生js事件的添加和删除的封装
2014/07/01 Javascript
jQuery中[attribute!=value]选择器用法实例
2014/12/31 Javascript
Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
2016/04/08 Javascript
JavaScript操作 url 中 search 部分方法函数
2016/06/15 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
jQuery事件处理的特征(事件命名机制)
2016/08/23 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
JavaScript模块详解
2017/12/18 Javascript
在vscode里使用.vue代码模板的方法
2018/04/28 Javascript
vue表单自定义校验规则介绍
2018/08/28 Javascript
如何用Node写页面爬虫的工具集
2018/10/26 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
Python 流程控制实例代码
2009/09/25 Python
应用OpenCV和Python进行SIFT算法的实现详解
2019/08/21 Python
python如何绘制疫情图
2020/09/16 Python
CSS3制作彩色进度条样式的代码示例分享
2016/06/23 HTML / CSS
Oakley官网:运动太阳镜、雪镜和服装
2016/09/30 全球购物
英国复古服装购物网站:Collectif
2019/10/30 全球购物
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
求职简历自荐信
2013/10/20 职场文书
学生党员思想汇报范文
2014/01/09 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
大学生实习证明范本
2014/09/19 职场文书
企业党员个人自我评价
2014/09/20 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
2015年世界无烟日活动总结
2015/02/10 职场文书