快速了解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
转载于:https://www.cnblogs.com/jackyrong/archive/2005/09/26/244518.html
快速了解c#中的索引器相关推荐
- c#中索引器是什么_C#中的索引器
c#中索引器是什么 An Indexer is a special feature of C# to use an object as an array. If you define an index ...
- C#中的索引器(Indexers)
前两天刚刚学习完了属性,这两天又搂完了索引器,发现两者非常的相似,但是相似之外还有一些不同之处.今天就来总结一下索引器--Indexers 索引器的作用及格式 索引器的作用就是能够使类或者结构体的实例 ...
- java类中定义索引器,C#面向对象基础——字段、属性和索引器
关于面向对象编程,在很多语言里面都出现过,最常用的如java和c++, C#语言关于面向对象编程的规范,我觉得介于上面两者之间,我的理解是它比较偏向c++,或许是因为跟它的析构函数有关系,像java有 ...
- 如何快速在 Springboot 中集成拦截器? | 原力计划
作者 | 才疏学浅 责编 | 夕颜 出品 | CSDN(ID:CSDNnews) 话不多说,直接上货! 拦截器的作用 拦截器提供了一种机制,在访问action前后进行一些操作,因为拦截器的这个特性,那 ...
- .Net学习难点讨论系列16 - 索引器
索引器是一个我们经常打交道的特性,在编程过程中,多多少少都会用到索引器.而关于索引器一些高级话题,如给自定义的类添加索引器等也是本文着重介绍的.索引器本质上是一组get和set访问器, []中提供的是 ...
- 第六章 数组和索引器 (6.6 索引器)
[案例]本案例在Student类中定义索引器,然后通过stu[i] 来引用Student类的对象实例. [案例目的](1)掌握索引器定义与使用. (2)理解索引器与属性的区别. [代码] namesp ...
- 黄聪:C#索引器详解、示例
索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写. 1.索引器的定义 C#中的类成员可以是任意类型,包括数组和集合.当一个类包含了数组和集合成员时,索引器 ...
- C#接口定义,索引器的定义
C#接口定义 C#不支持多重继承,但是客观世界又有多重继承的需要,因此,c#提出了接口的概念.通过接口可以实现多重继承的功能. 实现接口的类或结构要与接口的定义严格一致,接口描述可属于任何类或结构的一 ...
- ts(typescript)面向对象之索引器
索引器 这个概念不是typescript 中提出的,而是c#中提出的 什么是索引器 我们都知道,ts 中 获取对象中的属性有好多种方式 通过点的方式来进行获取 通过属性表达式的方式进行获取 通过获取对 ...
最新文章
- php bc函数库,PHP高精确度运算BC函数库实例详解
- 毕飞宇:我是靠阅读支撑起来的作家 因为生活没有给我那么多
- Mysql备机复制到主机_mysql主从复制的实现
- 干货:2015年巴菲特六大投资建议
- OpenGL 高级GLSL(Advanced GLSL)
- PHP的面向对象 — 封装、继承、多态
- 内存溢出_关于PermGen Space内存溢出解决方案
- ionic android 版本号,ionic android 版本release 和 签名(示例代码)
- 阿里云 APM 解决方案地图
- java vo转map_Java后端必备的开发规范
- 最棒的游戏制作软件VAM Virt A mate汉化 优秀豪华
- Qt开发 之 Windows资源管理器模仿 并 小超越
- dirent struct_关于readdir返回值中struct dirent.d_type的取值有关问题(转)
- iphone通用设置里显示UDID(tweak)
- qq物联网 android sdk,qcloud-iot-sdk-android
- 微信小程序:选择图片、上传图片(应用:切换用户头像)及过程中遇到的问题
- linux不同用户移动文件系统,第三节 linux:文件系统以及文件操作命令
- 赛效:WPS文字(Word)插入图片后如何移动图片
- 软考数据库详细知识点整理(全)
- ChatGPT如何提问?30句ChatGPT提问公式,快收藏
热门文章
- spring使用JdbcTemplate和jdbcDaosupport及具名参数使用
- python之装饰器详解
- UVA10763:Foreign ExchangeUVA10340: All in All(水题)
- 诗歌rials 之RJS的tips
- [MOSS开发]:如何使用用户控件
- c++ enum 给定类型_C++11作用域内枚举enum
- php跳转分站,PHP判断IP并转跳到相应城市分站的方法
- idea创建springboot项目出现的问题
- 如何关闭线程池?会创建不会关闭?调用关闭方法时线程池里的线程如何反应?
- Android studio 运行即打包keystore之build.gradle设置