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();

p[0]这的[0]表示调用索引器,传入参数0

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

p[0] 在赋值号左边(如 p[0] = ...)时,调用 set 访问器,将右侧的值赋给 friends[0]。

p[0] 在表达式右边(如 Console.WriteLine(p[0]))时,调用 get 访问器,返回 friends[0]。

索引器的重载和使用

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

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

相关推荐
她说..17 小时前
Java 对象相关高频面试题
java·开发语言·spring·java-ee
watson_pillow17 小时前
c++ 协程的初步理解
开发语言·c++
庞轩px17 小时前
深入理解 sleep() 与 wait():从基础到监视器队列
java·开发语言·线程··wait·sleep·监视器
故事和你9118 小时前
洛谷-算法1-2-排序2
开发语言·数据结构·c++·算法·动态规划·图论
白毛大侠19 小时前
理解 Go 接口:eface 与 iface 的区别及动态性解析
开发语言·网络·golang
李昊哲小课19 小时前
Python办公自动化教程 - 第7章 综合实战案例 - 企业销售管理系统
开发语言·python·数据分析·excel·数据可视化·openpyxl
Hou'19 小时前
从0到1的C语言传奇之路
c语言·开发语言
不知名的老吴20 小时前
返回None还是空集合?防御式编程的关键细节
开发语言·python
迈巴赫车主20 小时前
蓝桥杯3500阶乘求和java
java·开发语言·数据结构·职场和发展·蓝桥杯
小菜鸡桃蛋狗20 小时前
C++——string(上)
开发语言·c++