索引指示器

索引指示器

属性和索引器的区别:
1.
属性允许调用方法,如同它们是公共数据成员
索引器允许调用对象上的方法,如同对象是一个数组
2.
属性可通过简单的名称进行访问
索引器可通过索引器进行访问
3.
属性可以为静态成员或实例成员
索引器必须为实例成员
4.
属性的get访问器没有参数
索引器的get访问具有与索引器相同的形参表
5.
属性的set访问器包含隐式value参数
除了value参数外,索引器的set访问器还具有与索引器相同的形参表

public   partial   class  lei_suoyizhishiqi :System.Web.UI.Page
{
 
public   class  arr  // 创建一个类,作为容器
 {
  
private   string [] myarr;
  
  
private   int  szmax;  // 为重载做的

  
public  arr( int  size)  // 构造函数
  {
   szmax 
=  size;
   myarr 
=   new   string [size];
   
for  ( int  i  =   0 ; i < size; i ++ )
   {
    myarr[i] 
=   " 空值 " ;
   }
  }

  
// 构造索引指示器
   public   string   this [ int  j]
  {
   
get  { return  myarr[j]; }
   
set  {myarr[j]  =  value; }
  }

  
// 索引器重载
   public   string   this [ string  val]
  {
   
get
   {
    
int  count  =   0 ;
    
for  ( int  i  =   0 ; i  <  szmax; i ++ )
    {
     
if  (myarr[]  ==  var )
     {count 
++ ; }
    }
    
return  count.ToString();  // 得到值为val的个数
   }   
   
set
   {
    
for  ( int  i  =   0 ; i  <  szmax; i  ++ ; )
    { 
     
if  (myarr[i] ==  val )
     {myarr[i] 
=  value; }
    }
   }
  }
 }


 
protected   void  Page_Load( object  sender, EventArgs e)
 {
  
int  size  =   15 ;
  arr a 
=   new  arr(size);
  a[
1 =   " aidd " ;
  a[
3 =   " 20 " ;
  a[
8 =   " 08 " ;

  
for  ( int  i  =   0 ; i  <  size; i  ++ )
  {
   Response.Write(a[i] 
+   " <br/> " );
  }

  Response.Write(
" <p> "   +  a[ " 空值 " +   " </p> " );  // 看空值的个数

  a[
" 空值 " =   " 抽支烟先 " ;
  
for  ( int  i =   0 ; i <  size; i ++ )
  {
   Response.Write(a[i] 
+   " <br/> " );
  }

 }
}

你可能感兴趣的:(索引)