什么是索引指示器


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...

面试题 相关文章推荐
C/C++有关内存的思考题
Dec 04 面试题
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
Jan 05 面试题
如何理解委托
Jan 06 面试题
Shell编程面试题
May 29 面试题
法雷奥SQA(electric)面试问题
Jan 23 面试题
企业面试题试卷附带答案
Dec 20 面试题
Python中pass语句的作用是什么
Jun 01 面试题
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
Jul 02 面试题
一套中级Java程序员笔试题
Jan 14 面试题
一套英文Java笔试题面试题
Apr 21 面试题
Shell脚本如何向终端输出信息
Apr 25 面试题
J2EE是技术还是平台还是框架
Aug 14 面试题
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 json_encode中文乱码问题的解决办法
2013/09/09 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
2010/07/13 Javascript
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
Jquery修改页面标题title其它JS失效的解决方法
2014/10/31 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
jQuery的基本概念与高级编程
2015/05/14 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
2017/07/24 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
2018/09/03 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
bootstrap-closable-tab可实现关闭的tab标签页插件
2020/08/09 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
2020/11/24 Javascript
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
深入理解Python中的内置常量
2017/05/20 Python
对pandas写入读取h5文件的方法详解
2018/12/28 Python
python制作抖音代码舞
2019/04/07 Python
Python 模拟动态产生字母验证码图片功能
2019/12/24 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
python argparse传入布尔参数false不生效的解决
2020/04/20 Python
英国领先的野生鸟类食品供应商:GardenBird
2018/08/09 全球购物
公司晚会策划方案
2014/05/17 职场文书
计算机毕业生自荐信
2014/06/12 职场文书
保卫钓鱼岛口号
2014/06/20 职场文书
团日活动总结模板
2014/06/25 职场文书
公安机关查摆剖析材料
2014/10/10 职场文书
酒店工程部主管岗位职责
2015/04/16 职场文书
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技