C#索引指示器
来源:互联网 发布:软件测试教程 网盘 编辑:程序博客网 时间:2024/05/21 09:50
答:
实现索引指示器(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];
}
}
}
//感谢watson hua(http://huazhihao.cnblogs.com/)的指点
//索引指示器的实质是含参属性,参数并不只限于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.Length; i++)
{
tmpPoints[i] = new Point(i, Math.Sin(i));
}
Points tmpObj = new Points(tmpPoints);
for (int i = 0; i < tmpObj.PointNumber; 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 < 6; i++)
{
Console.WriteLine(tmpWeatherOfWeek[i]);
}
foreach (string tmpDay in Week)
{
Console.WriteLine(tmpWeatherOfWeek[tmpDay]);
}
Console.ReadLine();
}
}
}
结果:
X: 0 , Y: 0X: 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!
- C#中的索引指示器
- C#索引指示器
- C#索引指示器的应用
- [From Network]创建C#索引指示器
- C#学习之属性和索引指示器
- 索引指示器
- 索引指示器
- C#关于域、属性、事件、索引指示器介绍
- C# 域 属性 索引指示器 命名空间 方法
- C#学习——事件和索引指示器
- 索引指示器重载
- 索引指示器的应用
- 索引指示器的应用
- C#教程第十一课:索引指示器
- 自定义ViewPager页面指示器(导航索引)
- 索引指示器实现方法(含参属性)
- 指示器
- 指示器
- C#数组学习
- C#之理解接口的作用
- OOCSS FAQ
- C#类和接口、虚方法和抽象方法及值类型和引用类型的区别
- C#可以使用抽象函数重写基类中的虚函数吗?
- C#索引指示器
- C#关键字之params
- C#之关键字New
- Poj1463 及 Poj3659 树形贪心建立解
- C#之关键字this
- C#之关键字abstract
- 如何辨别盗版windows 7
- C#之抽象类与接口的区别
- C#中类与结构的区别