c#索引器

索引器基本概念

让类的实例对象可以像数组一样通过索引访问其中元素 使程序看起来更直观 更容易编写

cs 复制代码
访问修饰符,返回值 this[参数类型 参数名,参数类型 参数名,参数类型 参数名] 
{
          内部的写法和规则索引器相同
          get{}
          set{}

   }

索引器实例

cs 复制代码
  class Person
  {
      private string name;
      private int age;
      private Person[] friends;

      private int[,] array;
      public Person this[int index]//2索引器实例//4索引器内写逻辑
      {
          get
          {
              return friends[index];
          }
          set
          {
              //value代表传入的值
              friends[index] = value;
          }
      }
      public int this[int i ,int j]
      {
          get
          {
              return array[i, j];
          }
          set
          {
              array[i, j] = value;
          }
      }
  }

索引器的使用

cs 复制代码
Person p = new Person();
p[0] = new Person();

p0这的0表示调用索引器,传入参数0

=new Person()将新创建的Person对象作为值传递给索引器的set访问器中的value参数。

p0 在赋值号左边(如 p0 = ...)时,调用 set 访问器,将右侧的值赋给 friends0

p0 在表达式右边(如 Console.WriteLine(p0))时,调用 get 访问器,返回 friends0

索引器的重载和使用

让我们以中括号的形式范围自定义类中的元素 ,规则自己定,访问时和数组一样

比较适用于 在类中有数组变量时的使用 可以方便的访问和进行逻辑处理

相关推荐
caimouse3 分钟前
ReactOS 部分编译指南
开发语言
Chase_______7 分钟前
【Java基础 | 13】IO 流(下):缓冲流、转换流、序列化与综合案例
java·开发语言
弹简特7 分钟前
【零基础学Python-收尾】10-Python第三方库的安装介绍
开发语言·python
雪度娃娃21 分钟前
ASIO异步通信——多线程模型
开发语言·网络·c++·php
luj_176827 分钟前
残熵算法:风险缓冲与效率优化的融合
c语言·开发语言·网络·经验分享·算法
Legendary_0081 小时前
从 DC 圆口到 USB-C PD:LED 照明设备的供电升级逻辑
c语言·开发语言
SilentSamsara1 小时前
Python 微服务全链路:gRPC + 链路追踪 + 服务网格接入
开发语言·分布式·python·微服务·架构
一只积极向上的小咸鱼1 小时前
VS Code / Warp MCP 迁移到 Codex MCP 配置总结
开发语言
Cloud_Shy6181 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第三章 Item 21 - 24)
开发语言·人工智能·笔记·python·迭代器模式
多彩电脑1 小时前
Lua中的元表里的__index和__newindex
开发语言·lua