什么是索引指示器


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

面试题 相关文章推荐
PHP如何删除一个Cookie值
Nov 15 面试题
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
Aug 15 面试题
试解释COMMIT操作和ROLLBACK操作的语义
Jul 25 面试题
深圳-东方伟业笔试部分
Feb 11 面试题
什么是Smart Navigation?
Jul 03 面试题
什么是三层交换,说说和路由的区别在那里
Sep 01 面试题
Linux中如何用命令创建目录
Jan 12 面试题
AJAX的全称是什么
Nov 06 面试题
Python里面search()和match()的区别
Sep 21 面试题
Java程序员面试90题
Oct 19 面试题
shell变量的作用空间是什么
Aug 17 面试题
德尔福集团DELPHI的笔试题
Feb 22 面试题
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
使用数据库保存session的方法
2006/10/09 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
PHP下的浮点运算不准的解决方法
2016/10/27 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
PHP使用Nginx实现反向代理
2017/09/20 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
JavaScript 学习笔记之语句
2015/01/14 Javascript
jQuery实现预加载图片的方法
2015/03/17 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
2016/02/27 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
JS库之ParticlesJS使用简介
2017/09/12 Javascript
mui back 返回刷新页面的实例
2017/12/06 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
Javascript如何递归遍历本地文件夹
2020/08/06 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
Python学习之asyncore模块用法实例教程
2014/09/29 Python
Django框架下在视图中使用模版的方法
2015/07/16 Python
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
PyQt4实时显示文本内容GUI的示例
2019/06/14 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
2020/02/20 Python
python 使用建议与技巧分享(四)
2020/08/18 Python
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
2012/11/25 面试题
绩效管理实施方案
2014/03/19 职场文书
俞敏洪励志演讲稿
2014/04/29 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书
Netty分布式客户端接入流程初始化源码分析
2022/03/25 Java/Android
Flutter集成高德地图并添加自定义Maker的实践
2022/04/07 Java/Android
服务器SVN搭建图文安装过程
2022/06/21 Servers