张银的博客


Eat to live, but do not live to eat.

导航

索引指示器

Posted on 2009-01-11 05:09  张银  阅读(395)  评论(0编辑  收藏  举报

索引指示器

属性和索引器的区别:
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/>");
  }

 }
}