什么是索引指示器


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/c++某大公司的两道笔试题
Feb 02 面试题
2019年c语言经典面试题目
Aug 17 面试题
杭州时比特电子有限公司SQL
Aug 22 面试题
存储过程和sql语句的优缺点
Jul 02 面试题
为什么UNION ALL比UNION快
Mar 17 面试题
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
Mar 27 面试题
用C#语言写出与SQLSERVER访问时的具体过程
Apr 16 面试题
你所在的项目是如何确定版本号的
Dec 28 面试题
解决方案设计综合面试题
Aug 31 面试题
mysql有关权限的表都有哪几个
Apr 22 面试题
怎样自定义一个异常类
Sep 27 面试题
UNIX操作系统结构由哪几部分组成
Feb 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
使用dump函数,给php加断点测试
2013/06/25 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
主流PHP框架的优缺点对比分析
2014/12/25 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
JavaScript判断变量是否为undefined的两种写法区别
2013/12/04 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
2014/09/01 Javascript
jQuery多个input求和的实现方法
2015/02/12 Javascript
jQuery插件HighCharts绘制2D半圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
详解nodejs通过代理(proxy)发送http请求(request)
2017/09/22 NodeJs
React Native中Mobx的使用方法详解
2018/12/04 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
微信小程序wx.request拦截器使用详解
2019/07/09 Javascript
记一次vue跨域的解决
2020/10/21 Javascript
HTML元素拖拽功能实现的完整实例
2020/12/04 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
Python批量创建迅雷任务及创建多个文件
2016/02/13 Python
python 网络编程常用代码段
2016/08/28 Python
老生常谈python之鸭子类和多态
2017/06/13 Python
python3判断url链接是否为404的方法
2018/08/10 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
基于keras输出中间层结果的2种实现方式
2020/01/24 Python
Python实现从N个数中找到最大的K个数
2020/04/02 Python
实例讲解Python 迭代器与生成器
2020/07/08 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
小学生自我鉴定
2013/10/12 职场文书
安全生产投入制度
2014/01/29 职场文书
违反工作纪律检讨书
2014/02/15 职场文书
应聘教师自荐书
2014/06/16 职场文书
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android