indexer

索引器格式

public   int   this [ int  index]     //  Indexer declaration
{
    
//  get and set accessors
}

比如声明了一个SeqList类,里面有一个一维数组myList
怎样通过SeqList[i] 访问到 myList[i] 就可以用索引器实现

class  IndexerClass
{
    
private   int [] arr  =   new   int [ 100 ];
    
public   int   this [ int  index]    //  Indexer declaration
    {
        
get
        {
            
//  Check the index limits.
             if  (index  <   0   ||  index  >=   100 )
            {
                
return   0 ;
            }
            
else
            {
                
return  arr[index];
            }
        }
        
set
        {
            
if  ( ! (index  <   0   ||  index  >=   100 ))
            {
                arr[index] 
=  value;
            }
        }
    }
}

class  MainClass
{
    
static   void  Main()
    {
        IndexerClass test 
=   new  IndexerClass();
        
//  Call the indexer to initialize the elements #3 and #5.
        test[ 3 =   256 ;
        test[
5 =   1024 ;
        
for  ( int  i  =   0 ; i  <=   10 ; i ++ )
        {
            System.Console.WriteLine(
" Element #{0} = {1} " , i, test[i]);
        }
    }
}




//  Using a string as an indexer value
class  DayCollection
{
    
string [] days  =  {  " Sun " " Mon " " Tues " " Wed " " Thurs " " Fri " " Sat "  };

    
//  This method finds the day or returns -1
     private   int  GetDay( string  testDay)
    {
        
int  i  =   0 ;
        
foreach  ( string  day  in  days)
        {
            
if  (day  ==  testDay)
            {
                
return  i;
            }
            i
++ ;
        }
        
return   - 1 ;
    }

    
//  The get accessor returns an integer for a given string
     public   int   this [ string  day]
    {
        
get
        {
            
return  (GetDay(day));
        }
    }
}

class  Program
{
    
static   void  Main( string [] args)
    {
        DayCollection week 
=   new  DayCollection();
        System.Console.WriteLine(week[
" Fri " ]);
        System.Console.WriteLine(week[
" Made-up Day " ]);
    }
}

转载于:https://www.cnblogs.com/sexybomber/archive/2008/06/04/1213176.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值