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