C#索引器的用处

hebeijg 2008-05-16 12:32:26
private int[] MyArray = new int[100];

public int this[int index]
{
get
{
if (index < 0 || index > 100)
{
return 0;
}
else
{
return MyArray[index];
}
}
set
{
if (index > 0 && index < 100)
{
MyArray[index] = value;
}
}
}

static void Main(string[] args)
{


Indexer indexerTest = new Indexer();
indexerTest[3] = 234;
indexerTest[5] = 12;
for (int i = 0; i < 10; i++)
{
Console.Write("Element #{0}={1}", i, indexerTest[i]);
}
Console.ReadLine();
}
}
我已经执行出结果来了,但是我不知道为什么要用这个索引器,有什么用吗?
 C#语言一个最令人感兴趣的地方就是类的索引器(indexer)。简单说来,所谓索引器就是一类特殊的属性,通过它们你就可以像引用数组一样引用自己的类
这个是我在网上找到的结果。但是很不理解

高手给解释下 谢谢
...全文
612 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
懒牛科技 2008-05-16
  • 打赏
  • 举报
回复
个人理解:
有了索引可以把类用作数组去操作!
shinlgienls 2008-05-16
  • 打赏
  • 举报
回复
个人感觉

他是一种状态 在状态期 可以使用他,

对于以后的维护 也是很有好处
shinlgienls 2008-05-16
  • 打赏
  • 举报
回复
个人感觉 属性在 三层或者是多成用的比较多,

我把他想成一种状态,赋值了,在状态期就可以使用,

以后修改 也方便,
hebeijg 2008-05-16
  • 打赏
  • 举报
回复
原来如此,我看了这句话
C#语言一个最令人感兴趣的地方就是类的索引器(indexer)。简单说来,所谓索引器就是一类特殊的属性,通过它们你就可以像引用数组一样引用自己的类
我以为是需要建一个类的数组呢。
谢谢各位
游北亮 2008-05-16
  • 打赏
  • 举报
回复 1
举个简单例子,
你有一堆学生对象,在一个Collection或数组里
知道一个学生ID,
正常情况,你要自己循环整个数组去想找这个学生对象
通过索引,就可以通过
arr[ID]来访问学生对象了

简化你在别的代码里使用这个数组
yuelailiu 2008-05-16
  • 打赏
  • 举报
回复
索引器允许类或结构的实例按照与数组相同的方式进行索引,作用和 4楼兄台说的一样,加快搜索.
yunfeng007 2008-05-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 vrhero 的回复:]
居然有人能理解到三层、状态期去...

不要想得太复杂...只是一种快速访问类成员的方法而已...
[/Quote]
jzywh 2008-05-16
  • 打赏
  • 举报
回复
就是把MyArray简单封装一下,作必要的检查,让他不会抛出异常
vrhero 2008-05-16
  • 打赏
  • 举报
回复
居然有人能理解到三层、状态期去...

不要想得太复杂...只是一种快速访问类成员的方法而已...
C#完整教程以下是目录: 第一章 C#语言基础 5 1.1 C#语言特点 5 1.2 编写控制台应用程序 6 1.3 类的基本概念 10 1.4 C#的数据类型 13 1.5 运算符 20 1.6 程序控制语句 23 1.7 类的继承 26 1.8 类的成员 28 1.9 类的字段和属性 28 1.10 类的方法 30 1.11 类的多态性 36 1.12 抽象类和抽象方法 38 1.13 密封类和密封方法 39 1.14 接口 39 1.15 代表 42 1.16 事件 43 1.17 索引指示 44 1.18 名字空间 45 1.19 非安全代码 46 习题 47 第二章 Windows编程的基础知识 48 2.1 窗口 48 2.2 Windows的消息系统 48 2.3 Windows编程接口和类库 49 2.4 Windows应用程序的基本结构 50 习题 57 第三章 常用控件和类的使用 58 3.1 控件通用属性 58 3.2 Form类 58 3.3 标签(Label)控件 59 3.4 按钮(Button)控件 60 3.5 事件处理函数的参数 60 3.6 文本框(TextBox)控件 61 3.7 Convert类 62 3.8 单选按钮(RadioButton)和GroupBox控件 62 3.9 Font类 63 3.10 多选框(CheckBox)控件 63 3.11 列表选择控件(ListBox) 65 3.12 下拉列表组合框(ComboBox)控件 66 3.13 ToolTip控件 66 3.14 超级链接(LinkLable)控件 67 3.15 定时(Timer)控件 67 3.16 DateTime类 68 3.17 菜单 69 3.18 工具条 70 3.19 状态栏(StatusBar)控件 72 3.20 鼠标事件 73 3.21 快捷菜单(ContextMenu) 74 3.22 综合例子:计算 75 习题: 77 第四章 文本编辑的实现 79 4.1 用RichTextBox控件实现文本编辑 79 4.2 实现文本编辑的剪贴板功能 80 4.3 实现文本编辑的存取文件功能 80 4.4 修改字体属性 83 4.5 实现About对话框 84 4.6 实现文本编辑查找替换功能 85 4.7 提示用户保存修改的文件 88 4.8 打印和打印预览 90 4.9 编写多文档界面应用程序 94 习题 100 第五章 图形图像编程 102 5.1 图形设备环境接口(GDI) 102 5.2 Graphics类 102 5.3 GDI+中三种坐标系统: 103 5.4 GDI+中常用的结构 104 5.5 画笔 105 5.6 创建画刷 106 5.7 基本图形的绘制和填充 110 5.8 Matrix类和图形的平移、变形、旋转 122 5.9 图形文件格式 124 5.10 图形框PictureBox控件 125 5.11 Bitmap类 126 5.12 图像剪贴板功能 130 5.13 图像的处理 133 习题 136 第六章 文件和流 137 6.1 用流读写文件 137 6.2 File类和FileInfo类 138 6.3 Directory类和DirectoryInfo类 140 6.4 例子:查找文件 143 6.5 例子:拆分和合并文件 144 习题: 145 第七章 多线程程序设计 146 7.1 线程类(Thread)的属性和方法 146 7.2 线程的创建 147 7.3 建立线程类 148 7.4 线程的优先级 149 7.5 多个线程互斥 150 7.6 Monitor类 151 7.7 线程的同步:生产者和消费者关系 151 习题: 153 第八章 ADO.NET与数据操作 154 8.1 数据库基本概念 154 8.2 设计连接和不连接数据库应用程序的基本步骤: 154 8.3 用ACCESS创建数据库 155 8.4 结构化查询语言SQL 157 8.5 用Connection对象连接数据库。 158 8.6 Command对象 158 8.7 DataAdapter对象 159 8.8 DataSet对象 160 8.9 用DataGraid控件显示数据和数据绑定 162 8.10 不连接数据库应用程序的完整的例子 162 8.11 修改数据并保存修改的数据到源数据库 163 8.12 其它数据绑定控件 164 8.13 建立主从关系表 165 第九章 ASP.Net编程基础知识 167 9.1 网络基础 167 9.2 HTML标记语言 171 9.3 ASP.NET技术基础 181 第十章 Web服务端控件 188 10.1 常用的ASP.NET服务端控件 188 10.2 ASP.Net控件数据绑定 192 10.3 数据验证控件 209 10.4 DataGraid控件 219 10.5 AdRotator控件 235 10.6 Calender控件 236 10.7 Visual Studio.Net实现留言板 239 第十一章 ASP.NET内建对象 242 11.1 Request对象 242 11.2 Response对象 244 11.3 Cookie对象 246 11.4 Application对象 250 11.5 Session对象 253 11.6 Server 对象 257 习题 258 第十二章 可扩展标记语言 259 12.1 HTML及其缺点 259 12.2 SGML(标准通用置标语言) 259 12.3 XML(可扩展置标语言) 259 12.4 XML的文档格式 260 12.5 用XSL文件显示XML文档 261 12.6 .NET对XML的支持 265 12.7 ADO.NET和XML 268 12.8 使用Visual Studio.Net建立和显示XML文档 271 第十三章 Web服务 273 13.1 Web服务的概念和用途 273 13.2 建立Web服务 274 13.3 基于.Net的Web服务客户端程序 277 13.4 建立Web服务客户端程序一般方法 280 13.5 发布和发现Web服务 281

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧