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