C#封装-索引器(Indexer)

本文详细介绍了C#中的索引器,包括基本概念、语法结构、使用方法以及与属性和数组的比较。索引器允许类的实例像数组一样通过索引访问元素,支持重载,提供了更灵活的访问方式。同时,文章还讨论了索引器与数组和属性的区别,强调了索引器在自定义访问规则时的优势。
摘要由CSDN通过智能技术生成


前言

索引器(Indexer)是C#引入的一个新型的类成员,它使得类中的对象可以像数组那样方便、直观的被引用。


一、知识点一 索引器基本概念

基本概念:让对象可以像数组一样通过索引访问其中元素,使程序看起来更直观,更容易编写

二、知识点二 索引器语法

访问修饰符 返回值 this[参数类型 参数名,参数类型 参数名…]
{
内部的写法和规则
get{}
set{}
}

element-type this[int index]
{
   // get 访问器
   get
   {
      // 返回 index 指定的值
   }

   // set 访问器
   set
   {
      // 设置 index 指定的值
   }
}

三、知识点三 索引器的使用

索引器非常类似于属性,但索引器可以有参数列表,且只能作用在实例对象上,而不能在类上直接作用。

四、知识点四 索引器与属性和数组的比较

索引器允许类和结构的实例按照与数组相同的方式进行索引,索引器类似与属性,不同之处在于他们的访问器采用参数。被称为有参属性。

索引器与数组的比较:

  • 索引器的索引值不受类型限制。用来访问数组的索引值一定是整数,而索引器可以是其他类型的索引值。
  • 索引器允许重载,一个类可以有多个索引器。
  • 索引器不是一个变量没有直接对应的数据存储地方。索引器有get和set访问器。

索引器与属性的比较:

  • 标示方式:属性以名称来标识,索引器以函数签名来标识。
  • 索引器可以被重载。属性则不可以被重载。
  • 属性可以为静态的,索引器属于实例成员,不能被声明为static

五、知识点五 重载索引器

索引器(Indexer)可被重载。索引器声明的时候也可带有多个参数,且每个参数可以是不同的类型。没有必要让索引器必须是整型的。C# 允许索引器可以是其他类型,例如,字符串类型。


总结

索引其的主要作用:

  • 可以让我们以中括号的形式范围自定义类中的元素 规则自己定 访问时和数组一样。
  • 比较适用于 在类中有数组变量时引用 可以方便的访问和进行逻辑处理。

固定写法
访问修饰符 返回值 this[参数列表]
get和set语句块
可以重载
注意:结构体里面也支持索引器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值