什么是索引指示器


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如何自定义函数
Sep 16 面试题
编写用C语言实现的求n阶阶乘问题的递归算法
Oct 21 面试题
如何向接受结构参数的函数传入常数值
Feb 17 面试题
经典c++面试题四
May 14 面试题
网络通讯中,端口有什么含义,端口的取值范围
Nov 23 面试题
Internet体系结构
Dec 21 面试题
网络工程师面试(三木通信技术有限公司)
Jun 05 面试题
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
Oct 15 面试题
广州某公司软件工程师面试题
Dec 22 面试题
网友共享的几个面试题关于Java和Unix等方面的
Sep 08 面试题
GWT (Google Web Toolkit)有哪些主要的原件组成?
Jun 08 面试题
如果重写了对象的equals()方法,需要考虑什么
Nov 02 面试题
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
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
php mysql索引问题
2008/06/07 PHP
PHP开发规范手册之PHP代码规范详解
2011/01/13 PHP
php排序算法实例分析
2016/10/17 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
php实现微信发红包功能
2018/07/13 PHP
JQuery Tab选项卡效果代码改进版
2010/04/01 Javascript
javascript整除实现代码
2010/11/23 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
分享Javascript中最常用的55个经典小技巧
2013/11/29 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
2015/10/19 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
2016/11/17 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
分享bootstrap学习笔记心得(组件及其属性)
2017/01/11 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
深入理解jquery的$.extend()、$.fn和$.fn.extend()
2017/07/08 jQuery
Vue中计算属性computed的示例解读
2017/07/26 Javascript
详解Nodejs 通过 fs.createWriteStream 保存文件
2017/10/10 NodeJs
JavaScript门面模式详解
2017/10/19 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
详解element-ui中form验证杂记
2019/03/04 Javascript
Python中的引用和拷贝实例解析
2019/11/14 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
Python无头爬虫下载文件的实现
2020/04/02 Python
python中def是做什么的
2020/06/10 Python
Python同时迭代多个序列的方法
2020/07/28 Python
以太网Ethernet IEEE802.3
2013/08/05 面试题
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
2015/05/29 面试题
幼儿园实习自我鉴定
2013/12/15 职场文书
善意的谎言事例
2014/02/15 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
浪漫的婚礼主持词
2015/06/30 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
十大最强岩石系宝可梦,怪颚龙实力最强,第七破坏力很强
2022/03/18 日漫