实战开发 C# 索引器学习经验

操作方法

  • 01

    简单说来,所谓索引器就是一类特殊的属性,通过它们你就可以像引用数组一样引用自己的类。声明方法如下(与属性相似)://修饰符 类型名称 this [类型名称 参数名]public type this [int index]{get{//...}set{//...}}用例子简单说明:using System.Collections;static void Main(string[] args){//调用IntBits.IntBits方法,意为将63赋给bitsIntBits bits = new IntBits(63);//获得索引6的bool值,此时 bits[6]将调用索引器"public bool this[int index]"中的Get,值为Truebool peek = bits[6];Console.WriteLine("bits[6] Value: {0}",peek);bits[0] = true;Console.WriteLine();Console.ReadKey();}struct IntBits{private int bits;public IntBits(int initialBitValue){bits = initialBitValue;Console.WriteLine(bits);}//定义索引器//索引器的“属性名”是this,意思是回引类的当前实例,参数列表包含在方括号而非括号之内。public bool this [打折网http://dazhes.com]{get{return true;}set{if (value){bits = 100;}}}备注:所有索引器都使用this关键词来取代方法名。Class或Struct只允许定义一个索引器,而且总是命名为this。索引器允许类或结构的实例按照与数组相同的方式进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。get 访问器返回值。set 访问器分配值。this 关键字用于定义索引器。value 关键字用于定义由 set 索引器分配的值。索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。索引器可被重载。索引器可以有多个形参,例如当访问二维数组时。索引器可以使用百数值下标,而数组只能使用整数下标:如下列定义一个String下标的索引器public int this [string name] {...}属性和索引器属性和索引器之间有好些差别:类的每一个属性都必须拥有唯一的名称,而类里定义的每一个索引器都必须拥有唯一的签名(signature)或者参数列表(这样就可以实现索引器重载)。属性可以是static(静态的)而索引器则必须是实例成员。为索引器定义的访问函数可以访问传递给索引器的参数,而属性访问函数则没有参数。

(0)

相关推荐

  • STM32入门学习经验总结

    STM32系列基于专为要求高性能.低成本.低功耗的嵌入式应用专门设计的ARMCortex-M3内核.按性能分成两个不同的系列:STM32F103"增强型"系列和STM32F101& ...

  • 怎样用Android开发音乐播放器

    最近开始学习音频相关.所以,很想自己做一个音乐播放器,于是,花了一天学习,将播放器的基本功能实现了出来. 操作方法 01 在市面上的音乐播放app,即时你关了.那么一样会在后台播放,所以播放的逻辑应该 ...

  • AE学习经验总结

    操作方法 01 对于影视作品的创作,首先要清楚所表达的思想内容.如果是为客户制作,需要与之反复沟通.了解.其次要确定影片时间长短,对于广告和专题片来说这相当重要.一些专题需要旁白解说,因此,时间长度也 ...

  • 浅谈API学习经验

    API学习经验之谈___1 问题1____句柄 相信这个"东西"足以让各位朋友郁闷很长一段实际在"云里雾里"中(小生可能更严重) 其实,这是一个最不足以让你去深究的东西,先听听"大师级人物"(个人认为 ...

  • FreeBSD学习经验

    FreeBSD学习经验

  • Windows、Linux、Android、IOS 开发编程经验

    回想起来,从写一行"Hello World"到如今,已经有七八年了,回想起来,真正让自己技术得到提升的关键点有三个方面,一个是"实战项目",一个是"技 ...

  • 如何学习ios开发

    操作方法 01 若非计算机专业的同学,首先可以先买本书学习下C语言基础,建议看下< C Primer Plus>,了解编程语言的基础及逻辑. 02 然后学习objective-c语言,因为 ...

  • 不会写代码,如何从零学习Android开发?

    由于近几年来互联网的飞速发展,安卓和iOS平台的大量普及推广,移动开发在当前是非常热门的一个方向.有不少同学问如何学习安卓,要学些什么,难不难学.现在根据我的学习体验,做个大概的总结. 操作方法 01 ...

  • 学习php开发能做什么?

    很多同学问,现在那么多人学习php开发!那么到底学习php开发能做什么呢? 操作方法 01 PHP属于后起之秀,吸收了java和c以及perl等语言优点,专注互联网领域.WEB领域PHP拥有得天独厚的 ...