什么是索引指示器


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

面试题 相关文章推荐
新电JAVA笔试题目
Aug 31 面试题
iostream与iostream.h的区别
Jan 16 面试题
数据库设计的包括哪两种,请分别进行说明
Jul 15 面试题
什么是三层交换,说说和路由的区别在那里
Sep 01 面试题
C#面试常见问题
Feb 25 面试题
通用C#笔试题附答案
Nov 26 面试题
外企测试工程师面试题
Feb 01 面试题
中科软测试工程师面试题
Jun 16 面试题
如何开发一个JQuery插件
Jul 28 面试题
几个判断型的面试题
Jul 03 面试题
与UNIX有关的几个名词
Sep 17 面试题
Java面试题冲刺第十五天--设计模式
Aug 07 面试题
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
Eclipse的PHP插件PHPEclipse安装和使用
2014/07/20 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
拖动Html元素集合 Drag and Drop any item
2006/12/22 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
JavaScript中的方法调用详细介绍
2014/12/30 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
JavaScript实现的浮动层框架用法实例分析
2015/10/10 Javascript
JS+CSS实现仿msn风格选项卡效果代码
2015/10/22 Javascript
Javascript编程中几种继承方式比较分析
2015/11/28 Javascript
Bootstrap实现默认导航栏效果
2020/09/21 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
2015/12/31 Javascript
真正好用的js验证上传文件大小的简单方法
2016/10/27 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
微信小程序-获得用户输入内容
2017/02/13 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
vue+php实现的微博留言功能示例
2019/03/16 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
vue之延时刷新实例
2019/11/14 Javascript
Python挑选文件夹里宽大于300图片的方法
2015/03/05 Python
Python CSV模块使用实例
2015/04/09 Python
详解django中自定义标签和过滤器
2017/07/03 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
Python从入门到精通之环境搭建教程图解
2019/09/26 Python
python定时任务 sched模块用法实例
2019/11/04 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
韩国演唱会订票网站:StubHub韩国
2019/01/17 全球购物
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
团支书的期末学习总结自我评价
2013/11/01 职场文书
政府采购方案
2014/06/12 职场文书
基层党组织整改方案
2014/10/25 职场文书
当幸福来敲门英文观后感
2015/06/01 职场文书
清明节主题班会
2015/08/14 职场文书
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
Spring事务管理下synchronized锁失效问题的解决方法
2022/03/31 Java/Android