【C#】索引器

摘要:
索引器允许类或结构的实例以与数组相同的方式对值进行索引。索引器与属性类似,只是使用参数访问索引器。当类包含数组和集合成员时,索引器将大大简化对数组或集合成员的访问。

索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似,不同的是索引器的访问是带参的。

索引器和数组比较:

(1)索引器的索引值(Index)类型不受限制

(2)索引器允许重载

(3)索引器不是一个变量

索引器和属性的不同点

(1)属性以名称来标识,索引器以函数形式标识

(2)索引器可以被重载,属性不可以

(3)索引器不能声明为static,属性可以

C#中的类成员可以是任意类型,包括数组和集合。当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作。

[修饰符] 数据类型 this[索引类型 index]  
 
{  
    get{//获得属性的代码}                                                   
    set{ //设置属性的代码}  
} 

http://developer.51cto.com/art/201306/397265.htm

极客视频:

 http://www.jikexueyuan.com/course/514.html

using System;
using System.Collections;

public class IndexerClass
{
    private string[] name = new string[2];

    //索引器必须以this关键字定义,其实这个this就是类实例化之后的对象
    public string this[int index]
    {
        //实现索引器的get方法
        get
        {
            if (index < 2)
            {
                return name[index];
            }
            return null;
        }

        //实现索引器的set方法
        set
        {
            if (index < 2)
            {
                name[index] = value;
            }
        }
    }
}
public class Test
{
    static void Main()
    {
        //索引器的使用
        IndexerClass Indexer = new IndexerClass();
        //“=”号右边对索引器赋值,其实就是调用其set方法
        Indexer[0] = "张三";
       Indexer[1] = "李四";
        //输出索引器的值,其实就是调用其get方法
        Console.WriteLine(Indexer[0]);
       Console.WriteLine(Indexer[1]);
    }
}

什么时候使用索引器?  什么时候只用数组就好了呢?

以字符串作为下标,对索引器进行存取| 索引器的重载 |多参索引器: http://www.cnblogs.com/ArmyShen/archive/2012/08/27/2659405.html

免责声明:文章转载自《【C#】索引器》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Hessian反序列化RCE漏洞周末充电之WPF(三 ) .后台动态生成控件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Windows 之 删除保存的共享凭据(用户名和密码)

1、访问网络共享时,我们通常会打开Windows资源管理器,然后输入“\IP地址共享目录”,敲回车键访问。...

ios 苹果和百度地图的相关使用

同时由于苹果使用的是高德,不会像谷歌地图一样在国内乌龟一样的访问速度,确实做一些地图相关的东西,非常有吸引力。只是实现了显示一个百度地图的view。百度地图使用的是Objective-C++,这意味这必须要有一个.mm文件。...

Grafana 安装配置启动

多个数据源:Graphite、InfluxDB、OpenTSDB、Prometheus、Elasticsearch、CloudWatch、KairosDB、Zabbix等。通知和提醒,达到目标设置的阈值,并发出警报。grafana具有以下三个用户权限管理员:超级管理员,具有所有权限查看器:只能查看DashBoardEditer:无法创建用户,无法添加数据源,...

antd Tabs组件动态加载组件内容

Tabs的TabPane子组件不支持将属性传递给Component,并且官方示例的TabPane内容仅为简单文本。...

MS SQL Server版本的选择

3.开发人员版,它允许开发人员基于SQL Server构建和测试任何类型的应用程序。6.简单版也是免费版。它具有核心数据库功能,包括SQLServer2008中的最新数据类型,但它是SQLServer的微版本。...

Java SPI

在java.util.ServiceLoader的文档里有比较详细的介绍。简单的总结下javaspi机制的思想。  2.jdbc    jdbc4.0以前,开发人员还需要基于Class.forName的方式来装载驱动,jdbc4也基于spi的机制来发现驱动提供商了,可以通过META-INF/services/java.sql.Driver文件里指定实现类的方...