什么是索引指示器


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

面试题 相关文章推荐
会话Bean的种类
Nov 07 面试题
serialVersionUID具有什么样的特征
Feb 20 面试题
联想C++笔试题
Jun 13 面试题
RealTek面试题
Jun 28 面试题
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
Aug 04 面试题
SQL语言面试题
Aug 27 面试题
某科技软件测试面试题
May 19 面试题
如何开发一个JQuery插件
Jul 28 面试题
是否可以从一个static方法内部发出对非static方法的调用?
Aug 18 面试题
Java如何获得ResultSet的总行数
Sep 03 面试题
中科前程Java笔试题
Nov 20 面试题
Servlet面试题库
Jul 18 面试题
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
ThinkPHP分页类使用详解
2014/03/05 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
2014/06/19 PHP
PHP+Mysql基于事务处理实现转账功能的方法
2015/07/08 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
新浪的图片新闻效果
2007/01/13 Javascript
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
重构Javascript代码示例(重构前后对比)
2013/01/23 Javascript
javascript 事件处理示例分享
2014/12/31 Javascript
js对象继承之原型链继承实例
2015/01/10 Javascript
Bootstrap中CSS的使用方法
2016/02/17 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
详解vue-router基本使用
2017/04/18 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
vue1.0和vue2.0的watch监听事件写法详解
2018/09/11 Javascript
详细讲解如何创建, 发布自己的 Vue UI 组件库
2019/05/29 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
解密Python中的描述符(descriptor)
2015/06/03 Python
Django Rest framework之权限的实现示例
2018/12/17 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
2019/08/12 Python
python操作yaml说明
2020/04/08 Python
MATLAB数学建模之画图汇总
2020/07/16 Python
flask框架中的cookie和session使用
2021/01/31 Python
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
什么是Web Service?
2012/07/25 面试题
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
通信工程专业毕业生推荐信
2013/12/25 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
会计入职心得体会
2016/01/22 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
新手,如何业余时间安排好写作、提高写作能力?
2019/10/21 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js