什么是索引指示器


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

面试题 相关文章推荐
JRE、JDK、JVM之间的关系怎样
May 16 面试题
database面试题
Mar 28 面试题
阿里巴巴Oracle DBA笔试题答案-备份恢复类
Nov 20 面试题
非常详细的C#面试题集
Jul 13 面试题
某公司C#程序员面试题笔试题
May 26 面试题
测试时代收集的软件测试面试题
Sep 25 面试题
中间件分为哪几类
Mar 14 面试题
Why we need EJB
Oct 20 面试题
Java模拟试题
Nov 10 面试题
Jdbc数据访问技术面试题
Mar 30 面试题
与UNIX有关的几个名词
Sep 17 面试题
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
May 01 面试题
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进行MySQL删除记录操作代码
2008/06/07 PHP
字母顺序颠倒而单词顺序不变的php代码
2010/08/08 PHP
php中设置index.php文件为只读的方法
2013/02/06 PHP
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
Laravel4中的Validator验证扩展用法详解
2016/07/26 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
javascritp添加url参数将参数加入到url中
2014/09/25 Javascript
详解javascript遍历方式
2015/11/11 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
BootStrap入门教程(二)之固定的内置样式
2016/09/19 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
详解es6超好用的语法糖Decorator
2018/08/01 Javascript
小程序多图列表实现性能优化的方法步骤
2019/05/28 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
2020/09/24 Javascript
python实现给字典添加条目的方法
2014/09/25 Python
利用python画出折线图
2018/07/26 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
更新升级python和pip版本后不生效的问题解决
2020/04/17 Python
python Canny边缘检测算法的实现
2020/04/24 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
python设置表格边框的具体方法
2020/07/17 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
阿迪达斯奥地利官方商城:adidas.at
2016/10/16 全球购物
德国户外装备、登山运动和攀岩商店:tapir store
2020/02/12 全球购物
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
大学军训自我鉴定
2013/12/15 职场文书
班主任工作经验交流材料
2014/05/13 职场文书
城市创卫标语
2014/06/17 职场文书
python获取对象信息的实例详解
2021/07/07 Python