当前位置:首页 >> 中医养生

概述中的索引器覆盖

2021-09-06 09:56 来源:莱西养生网

C#语言一个最令人感兴趣的地方就是类的索引器(indexer)。简单说来,所谓索引器就是一类特殊的属性,通过它们你就可以像引用数组一样引用自己的类。显然,这一功能在创建集合类的场合特别有用,而在其他某些情况下,比如处理大型文件或者抽象某些有限资源等,能让类具有类似数组的行为当然也是非常有用的。本文就会引领你设置类来采用索引器。但是,首先让我们概述下属性这个概念以便了解些必要的背景知识。

属性

假如你曾经用VB6编写过程序,那么你应该很熟悉属性方法才对,所谓属性方法其实就是特殊的类成员,它实现了对私有类域的受控访问。在C#语言中有两种属性方法,其一是get,通过它可以返回私有域的值,其二是set,通过它就可以设置私有域的值。比如说,以下面的代码为例,其间创建了一个FirstName属性,由它控制对私有类成员firstname的访问:

class Person {

private string firstname;

public string FirstName {

get {return firstname;}

set {firstname = value;}

}

}

属性声明可以如下编码:

Person p = new Person();

rstName = \"Lamont\";

iteLine (rstName);

如你你所看到的那样,属性声明倒更像是域声明,只不过它还声明了两个特殊的成员,按照微软的说法就是所谓的访问函数(accessor)。当某一表达式的右边调用属性或者属性用作其他子程序(或者函数)的参数时即会调用get访问函数。反之,当表达式左边调用属性并且通过隐式传递value参数设置私有域值的情况下就会调用set访问函数。你可以创建只读属性,方法是省略set访问函数,这样任何设置属性的尝试都会产生编译错误。

采用索引器的益处

说了半天咱们转到正题上来,那么为什么我要兜这个圈子呢?其实,这是因为类的索引器非常像属性,从代码上看也是这样。以下是具有索引器的类示例,通过索引器会返回一个字符串:

class Sample {

public string this [int index] {

get {return \"You passed \" + index; }

}

“高龄”小区求破物业费僵局奉贤检察院驻看守所检察室获评全......航班不准点 延误险销量翻番让我们的心灵更纯净(附照片)“绿色账户”怎么玩(附照片)当顶级品牌遭遇个性化消费(附照......爱心楼宇集市北外滩“开张” }

注意,这里的属性名是this,意思是回引类的当前实例,参数列表包含在方括号而非括号之内。还有,这是一个只读索引器。为了把它改成读/写类型,我又添加了一个set访问函数。在定义索引器的时候,你不一定只采用一个参数。索引器参数可以采用任何类型,不过int是通常采用也是最为合理的类型。同一类中还可能拥有一个以上的索引器(重载)。

如上定义了Sample类之后,我们就可以把索引器用作某种默认的属性,如下所示:

Sample s = new Sample();

iteLine(s[55]);

属性和索引器

属性和索引器之间有好些差别:

类的每一个属性都必须拥有唯一的名称,而类里定义的每一个索引器都必须拥有唯一的签名(signature)或者参数列表(这样就可以实现索引器重载)。

属性可以是static(静态的)而索引器则必须是实例成员。

为索引器定义的访问函数可以访问传递给索引器的参数,而属性访问函数则没有参数。

接口

类似数组的行为常受到程序实现者的喜爱,所以你还可以为接口定义索引器,IList和 IDictionary集合接口都声明了索引器以便访问其存储的项目。

在为接口声明索引器的时候,记住声明只是表示索引器的存在。你只需要提供恰当的访问函数即可,不必包括范围修饰符。以下代码把索引器声明为接口IImplementMe的一部分:

interface IImplementMe {

string this[int index]

{

get;

set;

}

相应实现的类则必须为IimplementMe的索引器具体定义get和set访问函数。

以上就是有关索引器的一些基本概述了。现在你应该对索引器在你的开发中所具有的作用有了较深入的了解。查看本文来源

重庆皮肤病性病医院
石家庄治疗男科哪好
眼疼用什么药
相关阅读
大白熊犬嘴巴红肿肚皮发红是怎么了位置

前天发现豆豆的肚皮和生殖器发红,从昨天晚上开始发现它的嘴巴红肿了,肚皮还是很红,就早上吃了半根火腿肠,不爱出去玩了.今天早上,豆豆的嘴肿的更严重了,甚至有点要流脓的意思了,还是吃了半根火腿肠,睡睡觉就...

大白熊犬听不听话训练大白熊犬听话的方法位置

大白熊犬听不听话,狗狗它们也有它们自己的思想和本能,它们不听话也是正常的,对于狗狗不听话很多人都比较头痛,其实狗狗的听话与否跟我们也是有一定的关系的。可以通过训练来让狗狗听你的。下面我们就...

大白熊犬吃零食好吗位置

大白熊犬是大型犬,体形优美,很受人们欢迎。大白熊犬的食物好说,可以吃专业狗粮,也可以自己给大白熊做吃的,只要注意一些禁忌类的食物就行,还有一种食物对大白熊犬有很大的诱惑力,那就是零食,到底...

大白熊犬召回训练行之有效的方法位置

在狗狗没有被我们驯服之前,它们一直长期生活在大自然中,也不和人类接触,更无法懂得人类的语言。当我们饲养了大白熊犬的时候,它就要和我们长久的生活在一起,也要学会人类世界里的某些规则。大白熊犬...

大白熊犬发情不喜欢吃饭怎么办位置

大白熊犬发情这是第一次有10天了。这几天不爱吃食。风舞雪:非常正常,人恋爱的时候也有一种表现叫“食不知味”,何况是大白熊犬;让它远离异性,它平时喜欢的游戏多陪它玩,像扔球什么的;转移它的视线...

大白熊犬为什么会有抽搐的现象位置

您好.我家的大白熊犬已经三岁了.最近才来的我家.来我家过程中发现她有抽搐的现象.每十天抽搐一次.一次两天.抽搐时间为30秒钟左右.口吐黏液.抽搐完后异常兴奋.我们小区宠物门诊确诊为癫痫.现在正在打针.吃药...

友情链接