突然想起,某次面试,面试官问起会不会引索,当时回答会时候,底气有点不足。记忆已经有些模糊了。印象中的引索,就是一个很简单类引索,也不知道人家问得是不是那么简单的东西。
查下书跟资料,好像还真是就是那么简单的东西,实现类的引索。
书上说,是为了限制数据访问,又不得不开放数据时候的一种方法。感觉我对于数据的开放与否对程序有什么影响不是很清楚,没有什么概念。
顺便利用索引器写了一小段关于彩票的程序。
using
System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.IO;
namespace Date1218
... {
/**//// <summary>
/// 七星彩,头一位为期数,后面7位为当期数字,具体格式为“7146 8 8 8 8 8 8”
/// 数据储存在文本“1.txt”中。
///
/// 重温了一下Index的用法。
///
/// 设计了一个聚合关系,SevenStars 与 SevenStar。
///
/// </summary>
class SevenStar
...{
protected int[] Data_position = new int[8];
//Index的用法
public int this[int nIndex]
...{
get ...{ return Data_position[nIndex]; }
set ...{ Data_position[nIndex] = value; }
}
}
class SevenStars
...{
SevenStar [] seven_star = new SevenStar[1000];
private int length;
public int Length
...{
get ...{ return length; }
set ...{ length = value; }
}
//Index
public SevenStar this[int nIndex]
...{
get ...{ return seven_star[nIndex]; }
set
...{
if (value != null)
...{
seven_star[nIndex] = value;
}
}
}
}
class Test
...{
public static void Main(String[] args)
...{
SevenStars ss = new SevenStars();
ss = SetDataFromFile();
PrintData(ss);
}
public static SevenStars SetDataFromFile()
...{
StreamReader reader = File.OpenText("E:/edisk/lottery/1.txt");//文件位置
string str1;
SevenStars ss = new SevenStars();
int k = 0;
SevenStar seven_star;
while ((str1 = reader.ReadLine()) != null)
...{
seven_star = new SevenStar();
int j = 0;
string str2;
string str3 = "";
for (int i = 0; i < str1.Length; i++)
...{
str2 = str1[i].ToString();
if (str2 != " ")
...{
str3 += str2;
}
else
...{
seven_star[j] = Int32.Parse(str3);
j++;
str3 = "";
}
}
ss[k] = seven_star;
ss.Length = k;
k++;
}
return ss;
}
public static void PrintData(SevenStars ss)
...{
for (int i = 0; i < ss.Length+1; i++)
...{
for (int j = 0; j < 8; j++)
...{
SevenStar sevenStar = (SevenStar)ss[i];
Console.Write(sevenStar[j]+" ");
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.IO;
namespace Date1218
... {
/**//// <summary>
/// 七星彩,头一位为期数,后面7位为当期数字,具体格式为“7146 8 8 8 8 8 8”
/// 数据储存在文本“1.txt”中。
///
/// 重温了一下Index的用法。
///
/// 设计了一个聚合关系,SevenStars 与 SevenStar。
///
/// </summary>
class SevenStar
...{
protected int[] Data_position = new int[8];
//Index的用法
public int this[int nIndex]
...{
get ...{ return Data_position[nIndex]; }
set ...{ Data_position[nIndex] = value; }
}
}
class SevenStars
...{
SevenStar [] seven_star = new SevenStar[1000];
private int length;
public int Length
...{
get ...{ return length; }
set ...{ length = value; }
}
//Index
public SevenStar this[int nIndex]
...{
get ...{ return seven_star[nIndex]; }
set
...{
if (value != null)
...{
seven_star[nIndex] = value;
}
}
}
}
class Test
...{
public static void Main(String[] args)
...{
SevenStars ss = new SevenStars();
ss = SetDataFromFile();
PrintData(ss);
}
public static SevenStars SetDataFromFile()
...{
StreamReader reader = File.OpenText("E:/edisk/lottery/1.txt");//文件位置
string str1;
SevenStars ss = new SevenStars();
int k = 0;
SevenStar seven_star;
while ((str1 = reader.ReadLine()) != null)
...{
seven_star = new SevenStar();
int j = 0;
string str2;
string str3 = "";
for (int i = 0; i < str1.Length; i++)
...{
str2 = str1[i].ToString();
if (str2 != " ")
...{
str3 += str2;
}
else
...{
seven_star[j] = Int32.Parse(str3);
j++;
str3 = "";
}
}
ss[k] = seven_star;
ss.Length = k;
k++;
}
return ss;
}
public static void PrintData(SevenStars ss)
...{
for (int i = 0; i < ss.Length+1; i++)
...{
for (int j = 0; j < 8; j++)
...{
SevenStar sevenStar = (SevenStar)ss[i];
Console.Write(sevenStar[j]+" ");
}
Console.WriteLine();
}
Console.ReadLine();
}
}
}