返回列表 发新帖

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

427.6k 9
swmozowtfl 发表于 2015-7-10 22:30:00|湖北 | 查看全部 阅读模式
本文实例分析了asp.net中索引器的用法。分享给大家供大家参考。具体如下:, d! G0 E& ^; I; R2 ?/ T
索引器定义类似于属性,但其功能与属性并不相同.索引器提供一种特殊的方法编写get和set访问器.属性可以像访问字段一样访问对象的数据,索引器可以使用户像访问数组一样访问类成员.
# z! o# v# w, Q  V* d一、索引器特性& }/ y4 K* _  V1 p' s$ f
1、get 访问器返回值。set 访问器分配值。4 R9 D, I6 B0 P9 s# S) u
2、this 关键字用于定义索引器。
/ @' I: y4 Z. f3、value 关键字用于定义由 set 索引器分配的值。
0 p3 _$ {4 h, h1 T* z* s- ~4、索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。
* C% y( o% R; m; a8 T1 V  X/ U: \5、索引器可被重载。
$ w6 \3 N3 I  q$ J/ ^# L6、索引器可以有多个形参,例如当访问二维数组时。
! J  {6 d( Z  _( Q* N: y. ~7、索引器使得对象可按照与数组相似的方法进行索引。
! J/ {0 _5 M0 o* u; }2 a6 v二、定义索引器的方式与定义属性有些类似,其一般形式如下:6 @8 ]$ v# S( a0 K) s
复制代码 代码如下:[修饰符] 数据类型 this[索引类型 index]
1 \) f7 M% k; a$ l* A2 j{
* n; x3 I% T& h; C4 n2 O  }2 Iget{//获得属性的代码}
1 b1 c2 c# i0 `0 B. Vset{ //设置属性的代码}! z8 m! v  ^3 k+ K. q; V; t# j! M! K& D
}
: S- n2 C9 {) \& g. R; S" H# Y% h和方法一样,索引器有5种存取保护级别new、public、protected、internal、private,和4种继承行为修饰virtual、sealed、override、abstract,以及外部索引器.这些行为同方法没有任何差别.唯一不同的是索引器不能为静态(static),这在对象引用的语义下很容易理解.值得注意的是在重写(override)实现索引器时,应该用base[e]来存取父类的索引器.
5 u- ^. F* r* b; R; ~# E+ X! v0 X9 h三、索引器代码示例1 Y/ J4 a, L; l- R$ ~" X! c
c#代码如下:+ d* Z6 D+ X, ^- e, M3 O; v; @
复制代码 代码如下:class samplecollection<t>
3 {! `/ @# g6 n9 F- A/ K{& h) R3 d* z( y  L. h* c8 s: i
private t[] arr = new t[100];6 d" z5 o8 N( J1 n5 O
public t this[int i]/ }. D* z, A6 m5 C, ]5 Z# V0 c9 ^
{4 n0 |' y4 j  p5 P" C2 y& w
get
8 Z7 G0 _" D- F9 Z; F+ c. e{
; t" M) }0 }" s  freturn arr[i];4 t5 _7 Z! f: x
}
5 I; w) m; ?/ a# i9 kset! F/ o+ v* [& w7 L
{: G9 q+ _  n; k  G5 G5 s$ q
arr[i] = value;7 J& A- X$ O0 G) D+ H% {8 \
}
7 `, V( [4 [& k* x% S+ c- ^* j2 t}+ B" X/ g5 v7 b/ S8 C
}9 P, }$ [) a5 X" u
class program
# }  b& I" T3 l! x{
9 ~- \$ m" c9 z3 f5 n: t/ jstatic void main(string[] args)
7 p( J1 n( q' L9 Q{
0 k9 |3 \. ^+ K8 X5 }/ isamplecollection<string> stringcollection = new samplecollection<string>();
( K$ j" c) `: z3 k, U6 M$ `: Xstringcollection[0] = hello, world;7 k# f! `; b* ~( {7 ~: Z
system.console.writeline(stringcollection[0]);
, g- e4 B) K) [# Y7 G8 k}
& c, |9 O. g0 v( |$ R4 E; t}
" L; \' P0 p4 T9 X四、定义索引器应注意以下内容:2 c! e2 A% k  L9 e: O, }
1、所有索引器都使用this关键词来取代方法名.class或struct只允许定义一个索引器,而且总是命名为this.
4 C8 }+ ^, q% M/ T% ~. O' ]2、索引器允许类或结构的实例按照与数组相同的方式进行索引.索引器类似于属性,不同之处在于它们的访问器采用参数.
+ X9 K" S, |* ]7 n- h# ^3、索引器不一定根据整数值进行索引,您可以根据编程要求指定参数类型.
. j& _! T, O7 H3 \" Y3 A8 d6 L6 g希望本文所述对大家的c#程序设计有所帮助。2 h# t( c% Q* A4 v
- k  }, m( f7 ~. E0 `6 Q
更多网页制作信息请查看: 网页制作

回复|共 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客服 返回顶部
快速回复 返回顶部 返回列表