快速了解c#中的索引器
C#中的索引器是新增加的,和属性有些不同。在c#中,属性可以是这样的:

class Person {
private string firstname;
public string FirstName
 {
get {return firstname;}

set {firstname = value;}
}

}

属性声明可以如下编码: 
Person p = new Person();
p.FirstName = "TOM";
Console.WriteLine (p.FirstName);

属性声明倒更像是域声明,只不过它还声明了两个特殊的成员,按照微软的说法就是所谓的访问函数(accessor)。当某一表达式的右边调用属性或者属性用作其他子程序(或者函数)的参数时即会调用get访问函数。反之,当表达式左边调用属性并且通过隐式传递value参数设置私有域值的情况下就会调用set访问函数。
   索引器(Indexer)是C#引入的一个新型的类成员,它使得对象可以像数组那样被方便,直观的引用。索引器非常类似于我们前面讲到的属性,但索引器可以有参数列表,且只能作用在实例对象上,而不能在类上直接作用。下面是个例子:

using System;

namespace IndexerExample{

Class MyPreviousExp{  private string[] myCompanies = new string[10]; 

 //index creation public string this[int index] {

  get  {   if(index <0 or index >= 6)    return "null";    else    return myCompanies[index];

  }   set  {   if(!(index <0 or index >= 10))    myCompanies[index] = value;  }

 } } Class myMainClass{ public static void Main() {  myPreviousExp indexerObj = new myPreviousExp();

  indexerObj[0] = "AMS"  indexerObj[3] = "HCL"  indexerObj[5] = "ACC"   for(int i=0; i<10; i++  {    

   Console.WriteLine(" My Companies{0} : {1} ",i,indexerObj[i]);  }

 }} 

}  可见,我们象通过数组那样,访问到了其中的元素,而通过myPreviousExp indexerObj = new myPreviousExp();   建立了索引器,再通过  indexerObj[0] = "AMS"  indexerObj[3] = "HCL"  indexerObj[5] = "ACC" 设置值最后输出为:

myCompanies 0 : AMS
myCompanies 1 :
myCompanies 2 :
myCompanies 3 : HCL
myCompanies 4 :
myCompanies 5 : ACC
myCompanies 6 : null
myCompanies 7 : null
myCompanies 8 : null
myCompanies 9 : null

posted on 2005-09-26 19:37 jackyrong的世界 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/jackyrong/archive/2005/09/26/244518.html

快速了解c#中的索引器相关推荐

  1. c#中索引器是什么_C#中的索引器

    c#中索引器是什么 An Indexer is a special feature of C# to use an object as an array. If you define an index ...

  2. C#中的索引器(Indexers)

    前两天刚刚学习完了属性,这两天又搂完了索引器,发现两者非常的相似,但是相似之外还有一些不同之处.今天就来总结一下索引器--Indexers 索引器的作用及格式 索引器的作用就是能够使类或者结构体的实例 ...

  3. java类中定义索引器,C#面向对象基础——字段、属性和索引器

    关于面向对象编程,在很多语言里面都出现过,最常用的如java和c++, C#语言关于面向对象编程的规范,我觉得介于上面两者之间,我的理解是它比较偏向c++,或许是因为跟它的析构函数有关系,像java有 ...

  4. 如何快速在 Springboot 中集成拦截器? | 原力计划

    作者 | 才疏学浅 责编 | 夕颜 出品 | CSDN(ID:CSDNnews) 话不多说,直接上货! 拦截器的作用 拦截器提供了一种机制,在访问action前后进行一些操作,因为拦截器的这个特性,那 ...

  5. .Net学习难点讨论系列16 - 索引器

    索引器是一个我们经常打交道的特性,在编程过程中,多多少少都会用到索引器.而关于索引器一些高级话题,如给自定义的类添加索引器等也是本文着重介绍的.索引器本质上是一组get和set访问器, []中提供的是 ...

  6. 第六章 数组和索引器 (6.6 索引器)

    [案例]本案例在Student类中定义索引器,然后通过stu[i] 来引用Student类的对象实例. [案例目的](1)掌握索引器定义与使用. (2)理解索引器与属性的区别. [代码] namesp ...

  7. 黄聪:C#索引器详解、示例

    索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写. 1.索引器的定义 C#中的类成员可以是任意类型,包括数组和集合.当一个类包含了数组和集合成员时,索引器 ...

  8. C#接口定义,索引器的定义

    C#接口定义 C#不支持多重继承,但是客观世界又有多重继承的需要,因此,c#提出了接口的概念.通过接口可以实现多重继承的功能. 实现接口的类或结构要与接口的定义严格一致,接口描述可属于任何类或结构的一 ...

  9. ts(typescript)面向对象之索引器

    索引器 这个概念不是typescript 中提出的,而是c#中提出的 什么是索引器 我们都知道,ts 中 获取对象中的属性有好多种方式 通过点的方式来进行获取 通过属性表达式的方式进行获取 通过获取对 ...

最新文章

  1. php bc函数库,PHP高精确度运算BC函数库实例详解
  2. 毕飞宇:我是靠阅读支撑起来的作家 因为生活没有给我那么多
  3. Mysql备机复制到主机_mysql主从复制的实现
  4. 干货:2015年巴菲特六大投资建议
  5. OpenGL 高级GLSL(Advanced GLSL)
  6. PHP的面向对象 — 封装、继承、多态
  7. 内存溢出_关于PermGen Space内存溢出解决方案
  8. ionic android 版本号,ionic android 版本release 和 签名(示例代码)
  9. 阿里云 APM 解决方案地图
  10. java vo转map_Java后端必备的开发规范
  11. 最棒的游戏制作软件VAM Virt A mate汉化 优秀豪华
  12. Qt开发 之 Windows资源管理器模仿 并 小超越
  13. dirent struct_关于readdir返回值中struct dirent.d_type的取值有关问题(转)
  14. iphone通用设置里显示UDID(tweak)
  15. qq物联网 android sdk,qcloud-iot-sdk-android
  16. 微信小程序:选择图片、上传图片(应用:切换用户头像)及过程中遇到的问题
  17. linux不同用户移动文件系统,第三节 linux:文件系统以及文件操作命令
  18. 赛效:WPS文字(Word)插入图片后如何移动图片
  19. 软考数据库详细知识点整理(全)
  20. ChatGPT如何提问?30句ChatGPT提问公式,快收藏

热门文章

  1. spring使用JdbcTemplate和jdbcDaosupport及具名参数使用
  2. python之装饰器详解
  3. UVA10763:Foreign ExchangeUVA10340: All in All(水题)
  4. 诗歌rials 之RJS的tips
  5. [MOSS开发]:如何使用用户控件
  6. c++ enum 给定类型_C++11作用域内枚举enum
  7. php跳转分站,PHP判断IP并转跳到相应城市分站的方法
  8. idea创建springboot项目出现的问题
  9. 如何关闭线程池?会创建不会关闭?调用关闭方法时线程池里的线程如何反应?
  10. Android studio 运行即打包keystore之build.gradle设置