返回列表 发新帖

asp.net中索引器的用法分析

427.5k 9
swmozowtfl 发表于 2015-7-10 22:30:00|湖北 | 查看全部 阅读模式
本文实例分析了asp.net中索引器的用法。分享给大家供大家参考。具体如下:
2 v* e5 p5 i. G6 X4 @5 M; P+ n索引器定义类似于属性,但其功能与属性并不相同.索引器提供一种特殊的方法编写get和set访问器.属性可以像访问字段一样访问对象的数据,索引器可以使用户像访问数组一样访问类成员.
1 S" P1 `! P( P, i$ ?一、索引器特性
9 ~( D( E, p5 [- c1、get 访问器返回值。set 访问器分配值。/ B" }% s2 K: |5 `/ D8 H
2、this 关键字用于定义索引器。; S2 {* C) Q7 H1 ~; w
3、value 关键字用于定义由 set 索引器分配的值。$ _7 X" D4 g) F4 A
4、索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。, i1 [$ f' k% T2 ^5 c" j" V
5、索引器可被重载。  D" c% J- d2 |
6、索引器可以有多个形参,例如当访问二维数组时。8 I2 o& M9 e) D7 q/ B/ e) }, H
7、索引器使得对象可按照与数组相似的方法进行索引。* u0 T% l2 d4 _! W
二、定义索引器的方式与定义属性有些类似,其一般形式如下:' @4 o( P, r. @/ ]
复制代码 代码如下:[修饰符] 数据类型 this[索引类型 index]
  K" x- T* z) B7 X: p{1 E- C3 v# Z: j) s* p% T/ u
get{//获得属性的代码}
5 p$ `  ~+ _7 Q* \, Tset{ //设置属性的代码}
/ ], P4 M5 w  \) J: W7 M}( s( w) ~! X5 m$ V: `
和方法一样,索引器有5种存取保护级别new、public、protected、internal、private,和4种继承行为修饰virtual、sealed、override、abstract,以及外部索引器.这些行为同方法没有任何差别.唯一不同的是索引器不能为静态(static),这在对象引用的语义下很容易理解.值得注意的是在重写(override)实现索引器时,应该用base[e]来存取父类的索引器.5 R' d* ^/ ^0 p0 l- S& T/ I
三、索引器代码示例0 l3 ]( }  a* }, Y& J* K6 \4 N
c#代码如下:
, \& Y4 B5 F' Q0 W8 p0 D1 ^' P复制代码 代码如下:class samplecollection<t>
# _! I9 f7 c% ~3 G{
3 u3 g5 w' v- d. ~0 @) z( K/ Eprivate t[] arr = new t[100];
* O, i( x3 L) \( Dpublic t this[int i]# ]: u5 D8 e1 u
{
+ {/ n: ]2 P  ~+ fget& t' P$ G9 c/ C4 `0 q  ^( ^, o
{
; w/ @1 X8 i. ereturn arr[i];
2 d4 T5 \5 y9 h1 ]/ l}% O( ?# [9 y! p" v. F2 v
set
- |( i% ]1 S1 J& |9 ?1 ^{
7 y* i8 f1 g8 Carr[i] = value;
" k# c& z1 A6 w6 \' w- G}9 [/ n6 g" c  K1 n
}" G! H; Y1 R: r/ M4 ^3 N
}0 @4 t3 G! B  W# u8 s' G: d/ a
class program
. E! q7 b5 T6 K- h7 Z7 d) ]{
/ J& c; J  e' L2 o9 J* cstatic void main(string[] args)
8 N6 M( Y0 H; A{; X( H. Y, t/ ~" a* Y) {5 I! k
samplecollection<string> stringcollection = new samplecollection<string>();0 T5 _' z2 n# ^0 R: X
stringcollection[0] = hello, world;
4 K6 g' ^5 {2 F$ k# t. ysystem.console.writeline(stringcollection[0]);; W, t* o, ?( W; H) l1 n- Q( `: ^
}
& x! E3 Y: Y' p+ C$ n$ r+ o}! S% Q& G4 t, s4 h7 K) u9 Y/ s
四、定义索引器应注意以下内容:# f! r* i, \7 B7 G, |4 P
1、所有索引器都使用this关键词来取代方法名.class或struct只允许定义一个索引器,而且总是命名为this.* _2 w) f* q* H% g* f! C
2、索引器允许类或结构的实例按照与数组相同的方式进行索引.索引器类似于属性,不同之处在于它们的访问器采用参数.! _/ u, }- K0 |5 k4 ^/ `0 P+ b  G
3、索引器不一定根据整数值进行索引,您可以根据编程要求指定参数类型.
+ d2 F% p1 P& @7 W6 V; G7 L: s  r2 H希望本文所述对大家的c#程序设计有所帮助。. s& U+ y9 M: @6 ?4 L

& S# C3 S+ M, Y4 x# t" i: ]. L更多网页制作信息请查看: 网页制作

回复|共 9 个

seazvyt 发表于 2016-2-8 16:41:39|日本 | 查看全部
俺灌的不是水,是寂寞啊!
gevaemaidovef 发表于 2016-2-8 16:41:59|巴西 | 查看全部
原来...发神经是这样的啊...
bqtklouu 发表于 2016-2-8 16:42:00|德国 | 查看全部
这个论坛值得推荐,给了我们这么好的一个平台
GoodyFouppy 发表于 2016-2-8 16:42:30|美国 | 查看全部
怎么就没人拜我为偶像那??
gevaemaidovef 发表于 2016-3-7 19:02:00|美国 | 查看全部
求您了,给个机会
bqtklouu 发表于 2016-3-7 19:02:22|INNA | 查看全部
这个站一周前刚刚有了点起色
alapScady 发表于 2016-3-7 19:02:48|比利时 | 查看全部
去干吗啊~~~伤心啊~~~
alapScady 发表于 2016-3-7 19:02:59|土耳其 | 查看全部
其实今天baidu 又 抽风了
alapScady 发表于 2016-3-7 19:03:28|美国 | 查看全部
此贴有意思~

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

得知互动是一个融创意、设计、开发、营销、生活、互联网于一体的专业交流分享平台。
Copyright © 2026 得知互动-专注Ai与站长技术交流社区-Ai交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表