设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
C#中重载索引器和一般方法重载有何不同?? ...
返回列表
发新帖
C#中重载索引器和一般方法重载有何不同??
[复制链接]
11
|
1
|
2009-8-22 12:43:56
|
显示全部楼层
|
阅读模式
索引器(Indexer)是C#引入的一个新型的类成员,它使得对象可以像数组那样被方便,直观的引用。索引器非常类似于我们前面讲到的属性,但索引器可以有参数列表,且只能作用在实例对象上,而不能在类上直接作用。下面是典型的索引器的设计,我们在这里忽略了具体的实现。 class MyClass{
public object this [int index]
{
get
{
// 取数据
}
set
{
// 存数据
}
}}索引器没有像属性和方法那样的名字,关键字this清楚地表达了索引器引用对象的特征。和属性一样,value关键字在set后的语句块里有参数传递意义。实际上从编译后的IL中间语言代码来看,上面这个索引器被实现为: class MyClass{
public object get_Item(int index)
{
// 取数据
}
public void set_Item(int index, object value){ //存数据
}}由于我们的索引器在背后被编译成get_Item(int index)和set_Item(int index, object value)两个方法,我们甚至不能再在声明实现索引器的类里面声明实现这两个方法,编译器会对这样的行为报错。这样隐含实现的方法同样可以被我们进行调用,继承等操作,和我们自己实现的方法别无二致。通晓C#语言底层的编译实现为我们下面理解C#索引器的行为提供了一个很好的基础。 和方法一样,索引器有5种存取保护级别,和4种继承行为修饰,以及外部索引器。这些行为同方法没有任何差别,这里不再赘述。唯一不同的是索引器不能为静态(static),这在对象引用的语义下很容易理解。值得注意的是在覆盖(override)实现索引器时,应该用base[E]来存取父类的索引器。 和属性的实现一样,索引器的数据类型同时为get语句块的返回类型和set语句块中value关键字的类型。 索引器的参数列表也是值得注意的地方。“索引”的特征使得索引器必须具备至少一个参数,该参数位于this关键字之后的中括号内。索引器的参数也只能是传值类型,不可以有ref(引用)和out(输出)修饰。参数的数据类型可以是C#中的任何数据类型。C#根据不同的参数签名来进行索引器的多态辨析。中括号内的所有参数在get和set下都可以引用,而value关键字只能在set下作为传递参数。 下面是一个索引器的具体的应用例子,它对我们理解索引器的设计和应用很有帮助。 using System;class BitArray{ int[] bits; int length; public BitArray(int length){if (length > 5) + 1]; this.length = length; } public int Length{get { return length; } } public bool this[int index]{get { if (index = length)
throw new IndexOutOfRangeException(); elsereturn (bits[index >> 5] & 1 = length)
throw new IndexOutOfRangeException(); else if(value)
bits[index >> 5] |= 1 > 5] &= ~(1 << index);} }}class Test{ static void Main(){BitArray Bits=new BitArray(10);for(int i=0;i<10;i++) Bits
=(i%2)==0;
Console.Write(Bits
+"");}}编译并运行程序可以得到下面的输出: True False True False True False True False True False 上面的程序通过索引器的使用为用户提供了一个界面友好的bool数组,同时又大大降低了程序的存储空间代价。索引器通常用于对象容器中为其内的对象提供友好的存取界面--这也是为什么C#将方法包装成索引器的原因所在。实际上,我们可以看到索引器在.NET Framework类库中有大量的应用。
回复
使用道具
举报
千问
|
2009-8-22 12:43:56
|
显示全部楼层
。。。用其他方法做
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行
1
ndf19号维护什么是开始?
2
求 佛经 能让人平心静气,无欲无求的佛经
3
眉县汤峪镇如何?
4
CSOL毁灭者+8 伤害2 命中1 后座1 重量2 连射2 填弹0 这样怎么样~
5
孩子做题总是粗心,马虎怎么办呢?
6
湖北哪个厂家批发零售2000w、3000w、5000w汽油发电机?
7
bbk vivo s3 怎么设置双卡待机,设置里面找不到啊
8
建筑类学生毕业可以考什么证啊?
9
霍尼韦尔和英思科的气体探测器有什么区别,或者所各有什么优缺点?
10
不知道打电话回家说什么怎么办啊、
11
杭州这边有哪些大学可以念幼师或者说会计的??2012年考生跪求啊(安徽考生)
12
为什么支付宝实名认证邮箱提示通过了,但进去后还正在认证
13
《凤霸天下》 流玥写的,需要全集,谢谢了,邮箱是
[email protected]
14
尿红细胞增高(15个)、血清钙低(2.12)、血肌酐降低(45.4)、血红蛋白也低,是不是慢性肾炎?
15
我是个双子男...跟金牛女表白后
16
减肥要注意哪些营养?一味的减肥把自己弄的气喘,没体力.请问应该注意哪些营养.吃些什么,而不增肥?
17
缴纳营业税的企业需要设置设置会计科目(是从事工程检测的)
18
左旋杯杯瘦咖啡怎么样
19
E72i作调制解调器能否让平板电脑连接上网?
20
我有个女朋友到广东东皖打工,后来她用公用电话给我打电话说手机被偷了,接下来一直联系不上,恐怕她出...
21
求一篮球队名字?
22
中考要注意什么
23
力求本学期考得好,力求得到本学期的奖学金,属于什么动机
24
反叛的鲁鲁修会出第3季吗?亡国的阿基德和漆黑的连夜不说了,这两个根本不是R3
25
英语的词语填空
26
量具的MSA(拉力试验机,破坏性样品)怎么做。
27
RT 560 是选索泰GTX560
28
谁有财政局长对县区工作的点评文章 !
29
求河北工业大学函授生考试试卷(答案) 课程 化工仪表自动化 教师 胡德双
30
我想在端午节的时候为在看守所的家人放孔明灯或者风筝,要有夜光的那种。不知道哪里可以帮我做?
31
文言文中的要点是什么?
32
没怎么吃热气的东西,但口腔经常溃疡怎么办?
33
为什么电视上看电影比电脑清晰那么多
34
为什么我的DNF整日卡死?网速有没有事
35
关于90后初中毕业而又无业的问题,求大师解答!
36
发生性关系以后的感情问题
37
高考体育评分标准
38
申请建立沥青混凝土搅拌站需具备哪些条件
39
请教小学五年级数学应用题
40
求完结本的官场小说,谢啦!
[email protected]
41
我喜欢1个叫尹利敏的女孩 怎样写情书 200左右
42
叶黄素是药品还是保健食品?
43
鸭血是热性食物还是凉性食物
44
室内机风机有电输出 压缩机没电输出 接触器是 好的 请问是哪里出 了 问题
45
个人站长现在不能备案了吗
46
梅山龙宫门票是多少?
47
儿童心理原因偏食怎么办
48
长春星月时尚宾馆隆礼路店订房电话号码
49
笔记本罗技C270摄像头特别模糊。
50
如何在高效课堂下教育学生
51
门面房承租方将房屋第二次出租第三方已装潢房主要收回怎么办时间很短还不到一年
52
为什么人们一句例子就提到“小明”????
53
小学五年级数学应用题
54
请那位老师告知 TCL王牌NT21B03 彩色电视机,场同步电位器和场幅电位器在电路图中的位置,多谢!!!
55
27岁盗窃五百元会判刑吗?
56
iphone4s港版和美版哪种多人买?有什么分别?
57
新动态英语口语培训大概多少钱
58
需要60道小学五年级数学应用题!
59
副局级督查专员是什么级别
60
货代这行业有句话如何形容女人的
61
小学五年级数学应用题
62
我是建筑工程技术专业毕业的专科学生,请问各位达人我这个专业是属于结构工程么,我可以考结构师么?
63
如何摆脱学习开车的紧张心理?
64
联想笔记本屏幕下面有一条点装横线,怎么回事
65
天下3自动寻路时怎么会自己返回绑定神石
66
求怪物猎人P3,矿石任务,猪神的赐福。。。。。。邮箱
[email protected]
67
晚上熬夜该吃什么黑眼圈怎么消,眼睛浮肿怎么办
68
请问谁有仙剑奇侠传5的图文攻略,最好是包括支线任务的,谢谢谢谢!发邮箱吧
[email protected]
69
为什么我在睡觉的时候,同学们老说我去会周公了?周公到底是什么意思啊?
70
来人看下这2套配置,看下哪个好
71
会阴伤口发炎流脓怎么办?
72
北京解放军466医院副院长是谁?有没有知道的啊?
73
iphone4s如何外接投影仪
74
记得有一部关于丧尸的电影 详情请看下面
75
木工板做的家具需要贴面板吗
76
住房公积金的有关问题
77
小学五年级数学应用题
78
安徽工业大学工商学院招收河北考生吗
79
怎么给外出宝贝自治杀蚊水
80
2012年480分在安徽能上什么大学
81
我第一次网购买了腾达无线路由器用支付宝支付完,半个小时后商家发货了,我就点了确认收货后交易成功,...
82
脚上长水泡是湿疹吗?
83
如果2012年会计从业资格考试,安徽无纸化考试中会计基础和财经法规考过了,那么会计电算化可以补考么
84
九阴真经薄荷采集点 需要坐标
85
平安金融保险集团乐山分公司打电话来喊我明天去面试,各位大虾,小弟不是本地人,不知道该不该去?
86
最近绿箭口香糖广告中,萧敬腾教王诗安唱的那英文歌是啥?名字名字~
87
你们一定要帮我,狐臭很讨厌。请问广州手术治疗狐臭费用?
88
有财会毕业证,超过二年,办会计从业资格证要考几科
89
加拿大叫"CCAC"的组织都有哪些?
90
联想G475为什么玩DOTA很卡,刚买的没多久的电脑,魔兽里的游戏效果我已经调到最低了,驱动是驱动精灵驱动的
91
移动照明车有哪些配置呢?
92
胃难受、头晕不想工作,是什么原因造成的?
93
求翻译: 1、整弓复中之,观者诵叹,帝亲赐酒劳之 2、灌至,乞入见,不许,而令空西禺
94
临床确诊肿瘤最常用的检查方法
95
K9204是深圳出发还是广州出发
96
求消防车 一级秘密 MP3
97
求暗黑女王外传全开存档
98
李小龙二指俯卧撑做几个
99
本人今年21岁180左右体重是80公斤,没错是80,我应该上身脂肪很多,每天工作时间是白天8点到12点。
100
求一部小说 男主角带着电脑(也许photoshop)穿越,好像是一个以图阵背景的玄幻小说。原来起点中文上的