索引器的运用

突然想起,某次面试,面试官问起会不会引索,当时回答会时候,底气有点不足。记忆已经有些模糊了。印象中的引索,就是一个很简单类引索,也不知道人家问得是不是那么简单的东西。

查下书跟资料,好像还真是就是那么简单的东西,实现类的引索。

书上说,是为了限制数据访问,又不得不开放数据时候的一种方法。感觉我对于数据的开放与否对程序有什么影响不是很清楚,没有什么概念。

顺便利用索引器写了一小段关于彩票的程序。

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();
        }

         
         
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值