C#中的索引器详细讲解

索引器类型于属性,它们的不同之处在于索引器的访问器采用参数。
定义了索引器
【菜科解读】
索引器:是C#引入的一个新型的类成员,它允许类或结构的实例按照与数组相同的方式进行索引。
索引器类型于属性,它们的不同之处在于索引器的访问器采用参数。
定义了索引器之后,就可以像访问数组一样,使用[]运算符访问类的成员。
定义索引器的方式与定义属性有些类似,其一般形式如下:
[修饰符] 数据类型 this {get{//获得属性的代码} set{//设置属性的代码}}
索引器概述:
使用索引器可以用类似于数组的方式为对象建立索引。
get accessor returns a value." data-guid="5e97def07fe15e931d526cafa5b97644">get 访问器返回值。
set accessor assigns a value." data-guid="66b9797a805b510e697d60c805140aeb">set 访问器分配值。
this keyword is used to define the indexers." data-guid="c34f23e68daf270013978542591de397">this 关键字用于定义索引器。
value keyword is used to define the value being assigned by the set indexer." data-guid="599578d2a780928307c04f6ca2b0f058">value 关键字用于定义由 set 索引器分配的值。
索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。
索引器可被重载。
索引器可以有多个形参,例如当访问二维数组时。
属性与索引器的比较:
属性 索引器允许像调用公共数据成员一样调用方法允许对一个对象本身使用数组表示法来访问该对象内部集合中的元素可通过简单的名称进行访问可通过索引器进行访问可以为静态成员或实例成员必须为实例成员get accessor of a property has no parameters." data-guid="a6cc8a328d7d6f37fe6726bef0a1e49b">属性的 get 访问器没有参数get accessor of an indexer has the same formal parameter list as the indexer." data-guid="d83df23e86b78dbdb4847d31d82a2337">索引器的 get 访问器具有与索引器相同的形参表set accessor of a property contains the implicit value parameter." data-guid="7b8d943b10ea3a65d99f8a3c0b284e05">属性的 set 访问器包含隐式 value 参数set accessor of an indexer has the same formal parameter list as the indexer, and also to the value parameter." data-guid="61fa719a7490fc5fb284c6b5ef3c3c36">除了值参数外,索引器的 set 访问器还具有与索引器相同的形参表Auto-Implemented Properties (C# Programming Guide)." data-guid="0980783e25d81c644f0194104a5b78f1">支持对自动实现的属性(C# 编程指南)使用短语法不支持短语法get and set accessor methods as a means of assigning and retrieving values." data-guid="dd23dc3354d63d8f7d007da64625c804"> 在下面的示例中,定义了一个泛型类,并为其提供了简单的 get 和 set 访问器方法(作为分配和检索值的方法)。
Program class creates an instance of this class for storing strings." data-guid="6ddaa503e5fad577a85f10e9f502a5c1">Program 类为存储字符串创建了此类的一个实例。
class SampleCollection // Declare an array to store the data elements. private T[] arr = new T[100]; // Define the indexer, which will allow client code // to use [] notation on the class instance itself. // (See line 2 of code in Main below.) public T this[int i] // This indexer is very simple, and just returns or sets // the corresponding element from the internal array. return arr[i]; arr[i] = value;// This class shows how client code uses the indexer.class Program static void Main(string[] args) // Declare an instance of the SampleCollection type. SampleCollection stringCollection = new SampleCollection(); // Use [] notation on the type. stringCollection[0] = "Hello, World"; System.Console.WriteLine(stringCollection[0]);}
接口中的索引器:
interface (C# Reference)." data-guid="9d8d9a82ccf82d740176b0fc9dbd9f72">索引器可在接口上声明。
class indexers in the following ways:" data-guid="6f6aa5a1638e327697f0ddb85ba767e0">接口索引器的访问器与类索引器的访问器具有以下方面的不同:
接口访问器不使用修饰符。
接口访问器没有体。
因此,访问器的用途是指示索引器是读写、只读还是只写。
以下是接口索引器访问器的示例:
public interface ISomeInterface{ //... // Indexer declaration: string this[int index] { get; set; }}
一个索引器的签名必须区别于在同一接口中声明的其他所有索引器的签名。
下面的示例显示如何实现接口索引器。
// Indexer on an interface: public interface ISomeInterface { // Indexer declaration: int this[int index] { get; set; } } // Implementing the interface. class IndexerClass : ISomeInterface { private int[] arr = new int[100]; public int this[int index] // indexer declaration { get { // The arr object will throw IndexOutOfRange exception. return arr[index]; } set { arr[index] = value; } } } class MainClass { static void Main() { IndexerClass test = new IndexerClass(); System.Random rand = new System.Random(); // Call the indexer to initialize its elements. for (int i = 0; i 例如,如果 Employee 类实现的是两个接口 ICitizen 和 IEmployee,并且这两个接口具有相同的索引器签名,则必须使用显式接口成员实现。
即,以下索引器声明:
public string IEmployee.this }
在 IEmployee 接口上实现索引器,而以下声明:
public string ICitizen.this }
在 ICitizen 接口上实现索引器。
中的,索引,器,详细,讲解,索引,器,是,引入,的,三十六计中的第三计,郑桓公用过,皇太极也用过
译文是这样的“敌人的情况已经明确,而盟友的态度还未明朗,利用盟友的力量去消灭敌人,就不必自己付出什么力量了,这是从《损》卦中推演出来的计策”。
这一计策的名字源于《韩非子.内储说下》,当时郑桓公想要侵占郐国,但是郐国有不少的能臣勇将不好打。
他的谋士就为他出了一个计策,让手下人去讲郐国的英雄豪杰、能臣勇将的名字都记下来。
自己挑选了一个吉利的日子在城门边设了一个祭坛,一下子引来了很多人公布自己要攻打郐国的消息,并放出消息说郐国的能臣勇将不喜欢自己的国君,想要邀请自己做他们的国君,他假装宣誓当自己攻下郐国之后就将郐国的良田赠送给他们,并让他们做大官,然后将写有能臣勇将名字的帛书埋在了祭坛下面。
后来帛书到了郐国国君的手中,郐国国君一怒之下将这些人全都杀了,最后郐国被郑桓公不飞就灭了。
在历史中有一个经典的借刀杀人的事件,这就是皇太极计除袁崇焕,当时努尔哈赤率军攻打宁远,结果被袁崇焕挫伤满军锐气而败北,努尔哈赤也因为这件事羞愧愤懑,气急身亡。
他的儿子皇太极经过几年的准备再一次进攻。
这次他避开了宁远想要直插后方,但是袁崇焕及时赶到满军又一次败北。
为了除掉袁崇焕,又因为皇帝多疑,所以皇太极想到了一个借刀杀人的妙计。
他派人用重金贿赂明朝宦官。
让宦官“告密”。
宦官“告密”说袁崇焕因为与满军签订协议,所以满军才成功翻阅长城进入内地。
最终一代名将袁崇焕因为皇帝的不信任最终被斩首。
随机文章鲨鱼为什么怕海豚,鲨鱼为什么不吃海豚(海豚完胜鲨鱼/屌炸天)南极为什么没有北极熊,与南极洲的形成和北极熊祖先有关巴拿马运河谁修的,巴拿马运河是美国的吗(美国建造/不属于美国)诺贝尔奖为什么发不完,诺贝尔奖金还剩多少钱(投资理财/钱滚钱)一生比较倒霉的生肖,生肖牛/猪/兔败在性格上(只能求贵人相助)
铁岭职工社保计算器来了2025年,职工个人社保卡需要交多少钱一年?
这表明社保卡已经得到了广泛的普及,但并非人人都有。
那么铁岭社保卡一年交多少钱?接下来随新社通app小编一起了解社保卡费用具体详情吧。
一、职工社保卡每年交多少钱? 以吕某职工社保为例,费用如下图: 由上图得知,吕某社保卡一年需要缴纳5383.98元,职工个人月缴纳448.67元,若您想要了解明细点击新社通社保计算器,来了解一下明细吧。
》点击新社通app社保计算器,轻松了解你的社保缴费明细!提示:新社通社保计算器计算所得,数据仅供参考。
每个城市每年设定的最低缴纳基数(即劳动者月收入)各有差异,但总体上遵循着相似的原则,即按比例进行缴纳。
二、社保卡的余额方法怎么查询社保卡余额,最新方法如下:查询社保卡上的金额可以通过三种方式进行查询,具体如下:1、电话查询。
参保人可以通过拨打当地社保局电话进行查询,服务热线:区号+12333。
2、网上查询。
参保人可直接登录当地的社保局网站,输入社保卡号和身份证号码,即可查询社保卡上的余额。
3、社保中心查询参保人可以携带相关证件直接到当地的社保局窗口进行查询。
以上就是吕某职工社保卡一年缴费金额的全部内容,希望对您有帮助,欢迎关注新社通app解锁更多社保专业资讯。