索引器(Indexer)是C#引入的一个新型的类成员,它使得类中的对象可以像数组那样方便.直观的被引用.索引器非常类似于属性,但索引器可以有参数列表,且只能作用在实例对象上,而不能在类上直接作用.定义了索引器的类可以让您像访问数组一样的使用 [ ] 运算符访问类的成员.(当然高级的应用还有很多,比如说可以把数组通过索引器映射出去等等) 本文只是简单演示一下索引器的概念和基本的使用方法: 请看代码,下面是类的定义,中间包含了一个索引器定义 类的定义 public class Person { //…
概述 此部分内容引用自MSDN文档 使用索引器可以用类似于数组的方式为对象建立索引. get 取值函数返回值. set 取值函数分配值. this 关键字用于定义索引器. value 关键字用于定义 set 索引器所赋的值. 索引器不必根据整数值进行索引:由你决定如何定义特定的查找机制. 索引器可被重载. 索引器可以有多个形参,例如当访问二维数组时. 我对索引器的理解就是,他是一个读写自定义类中的数据集合的接口,连接自定义类中的数据集合,并可对其进行读写操作 通过该接口简化或者丰富对自定义类中数…
实际中不使用这个东西,只做了解 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 索引器 { class Program { static void Main(string[] args) { person p = new person(); p[] = ; p[] = ; p[] = ; p[]…
1.属性 //属性的2种写法 public class person { private string _name; public string Name { get { return _name; } set { _name=value; } } public int Age { get; set; } } 2.索引器 //外部调用 person p=new person; sting str=p[] public class person { private string _name; p…
索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似,不同的是索引器的访问是带参的. 索引器和数组比较: (1)索引器的索引值(Index)类型不受限制 (2)索引器允许重载 (3)索引器不是一个变量 索引器和属性的不同点 (1)属性以名称来标识,索引器以函数形式标识 (2)索引器可以被重载,属性不可以 (3)索引器不能声明为static,属性可以 using System; using System.Collections; public class IndexerCl…
原文地址:https://msdn.microsoft.com/zh-cn/library/6x16t2tx(VS.80).aspx 索引器允许类或结构的实例按照与数组相同的方式进行索引.索引器类似于属性,不同之处在于它们的访问器采用参数. 在下面的示例中,定义了一个泛型类,并为其提供了简单的 get 和 set 访问器方法(作为分配和检索值的方法).Program 类为存储字符串创建了此类的一个实例. C# class SampleCollection<T> { private T[]…
学习如何使用索引器,索引器的使用是public 类型 this[int index]{get{};set{}} ,访问通过类的实例(对象)加[i], 例如animal[i],就像访问数组一样,其实就是类的数组访问的使用书写. 使用详情请看msdn. 例子如下: class IndexerClass { ]; public int this[int index] // Indexer declaration { get { // Check the index limits. || index >…
索引器提供了一种可以让类被当作数组进行访问的方式.在C#中,类索引器是通过this的属性实现的.index.ToString("D2")将index转换成一个具有两个字符宽度的字符串 using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace ClassIndexer{ /// <summary> /// define a class c…
abstract class Bird { protected string name; public abstract string Name { get; set; } public abstract string GetName(); } class Eagle : Bird { public Eagle(string name) { this.name = name; } public override string Name { get { return name;//throw ne…