什么是索引指示器


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++)
Nov 04 面试题
C++:局部变量能否和全局变量重名
Mar 03 面试题
.NET里面什么时候需要调用垃圾回收
Jun 01 面试题
Does C# support multiple inheritance? (C#支持多重继承吗)
Jan 04 面试题
在C#中如何实现多态
Jul 02 面试题
Linux常见面试题
Mar 18 面试题
Linux管理员面试题 Linux admin interview questions
Nov 01 面试题
介绍一下RMI的基本概念
Dec 17 面试题
比较一下entity bean和session bean
Dec 27 面试题
AJax面试题
Nov 25 面试题
为什么Runtime.exec(“ls”)没有任何输出?
Oct 03 面试题
重写子类方法时,抛出异常的书写注意事项
Oct 17 面试题
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 eval函数用法总结
2012/10/31 PHP
浅谈php优化需要注意的地方
2014/11/27 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
JavaScript中的Location地址对象
2008/01/16 Javascript
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
用jquery写的一个万年历(自写)
2014/01/20 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
Javascript基础教程之定义和调用函数
2015/01/18 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
2016/11/22 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
React+EggJs实现断点续传的示例代码
2020/07/07 Javascript
用实例分析Python中method的参数传递过程
2015/04/02 Python
python算法表示概念扫盲教程
2017/04/13 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
Python后台开发Django会话控制的实现
2019/04/15 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
2019/08/06 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
eBay奥地利站:eBay.at
2019/07/24 全球购物
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
一份全面的PHP面试问题考卷
2012/07/15 面试题
如何进行Linux分区优化
2013/02/12 面试题
生物化学研究助理员求职信
2013/10/09 职场文书
会计专业毕业生自荐信范文
2013/12/20 职场文书
科学发展观演讲稿
2014/09/11 职场文书
信用卡工资证明格式
2014/09/13 职场文书
推普周国旗下讲话稿
2014/09/21 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
2016年小学“感恩教师”主题队日活动总结
2016/04/01 职场文书
java设计模式--建造者模式详解
2021/07/21 Java/Android