什么是索引指示器


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面试题及答案二
May 23 面试题
SQL中where和having的区别
Jun 17 面试题
下面这个程序执行后会有什么错误或者效果
Nov 03 面试题
数组越界问题
Oct 21 面试题
TCP协议通讯的过程和步骤是什么
Oct 18 面试题
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
Dec 12 面试题
.net C#面试题
Aug 28 面试题
Linux如何为某个操作添加别名
Feb 05 面试题
什么是方法的重载
Jun 24 面试题
Java基础知识面试题
Mar 25 面试题
精选干货:Java精选笔试题附答案
Jan 18 面试题
DELPHI中如何调用API,可举例说明
Jan 16 面试题
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 快速生成 Flash 动画的方法
2007/03/06 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
PHP实现负载均衡的加权轮询方法分析
2018/08/22 PHP
html下载本地
2006/06/19 Javascript
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
node.js学习总结之调式代码的方法
2014/06/25 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
Python递归函数定义与用法示例
2017/06/02 Python
Python中关于Sequence切片的下标问题详解
2017/06/15 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
浅谈pandas用groupby后对层级索引levels的处理方法
2018/11/06 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
2018/11/10 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
python实现简单的tcp 文件下载
2020/09/16 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
成人大专自我鉴定范文
2013/10/19 职场文书
2014年大学庆元旦迎新年活动方案
2014/03/09 职场文书
委托公证书范本
2014/04/03 职场文书
治超工作实施方案
2014/05/04 职场文书
启动仪式策划方案
2014/06/14 职场文书
加强作风建设工作总结
2014/10/23 职场文书
2015元旦节寄语
2014/12/08 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS
css3实现背景图片半透明内容不透明的方法示例
2021/04/13 HTML / CSS
go语言中切片与内存复制 memcpy 的实现操作
2021/04/27 Golang