什么是索引指示器


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

面试题 相关文章推荐
Ibatis的核心配置文件都有什么
Sep 08 面试题
益模软件Java笔试题
Mar 27 面试题
Java的基础面试题附答案
Jan 10 面试题
C语言怎样定义和声明全局变量和函数最好
Nov 26 面试题
C语言中一个结构不能包含指向自己的指针吗
May 25 面试题
联想C++笔试题
Jun 13 面试题
Linux管理员面试经常问道的相关命令
Dec 12 面试题
软件工程师面试题
Jun 25 面试题
如果重写了对象的equals()方法,需要考虑什么
Nov 02 面试题
WebSphere面试题:在WebSphere里面如何部署一个应用
Aug 02 面试题
Servlet都有哪些方法?主要作用是什么?
Mar 04 面试题
给定一个时间点,希望得到其他时间点
Nov 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
如何对PHP程序中的常见漏洞进行攻击
2006/10/09 PHP
php 之 没有mysql支持时的替代方案
2006/10/09 PHP
php中的一个中文字符串截取函数
2007/02/14 PHP
PHP 冒泡排序算法的实现代码
2010/08/08 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
php动态生成缩略图并输出显示的方法
2015/04/20 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
PHP MVC框架skymvc支持多文件上传
2016/05/26 PHP
JavaScript 监听textarea中按键事件
2009/10/08 Javascript
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
ECMAScript6函数默认参数
2015/06/12 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
2019/09/10 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
vue-cli 关闭热更新操作
2020/09/18 Javascript
记录Django开发心得
2014/07/16 Python
Python计算一个文件里字数的方法
2015/06/15 Python
使用Python编写爬虫的基本模块及框架使用指南
2016/01/20 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
Python 3 判断2个字典相同
2019/08/06 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
2019/09/05 Python
PyTorch安装与基本使用详解
2020/08/31 Python
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
党的群众路线教育实践活动个人承诺书
2014/05/22 职场文书
房屋出租委托书格式
2014/09/23 职场文书
学校重阳节活动总结
2015/03/24 职场文书
复兴之路展览观后感
2015/06/02 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
详解Vue的sync修饰符
2021/05/15 Vue.js