日期:2014-05-18  浏览次数:20513 次

类的属性索引产生的数组问题
index0 i = new index0();
  i[0] = "sddssdsd";
  i[1] = "sdsdhjhk";
  this.Label3.Text = i[0];
  this.Label4.Text = i[1];
  }
  public class index0
  {
  private string name;
  public string this[int index]
  {
  get { return name; }
  set { name=value; }
  }
  }
为什么this.Label3.Text,this.Label4.Text返回来的值都是i[0] = "sddssdsd";???如何改

------解决方案--------------------
你确定是i[0]的值,应该都是i[1]的值吧
------解决方案--------------------

index0 类内部,应该包含一个私有的集合成员(比如键值对),索引属性中的get返回集合对应的索引值
------解决方案--------------------
index0 i = new index0(); 
i[0] = "sddssdsd"; 
i[1] = "sdsdhjhk"; 
this.Label3.Text = i[0]; 
this.Label4.Text = i[1]; 

public class index0 

private ArrayList name = new ArrayList(); 
public string this[int index] 

get { //加点代码还要判断索引长度,避免超出范围
...
return name[index].ToString(); } 
set { name[index]=value; }