c#教程——索引器

前言:

索引器(Indexer)可以像操作数组一样来访问对象的元素。它允许你使用索引来访问对象中的元素,就像使用数组索引一样。在C#中,索引器的定义方式类似于属性,但具有类似数组的访问方式。

索引器:

cs 复制代码
public returnType this[indexType index] {
    // 索引器的 get 访问器
    get {
        // 返回与索引相关的值
    }
    // 索引器的 set 访问器
    set {
        // 设置与索引相关的值
    }
}
  • returnType 是索引器返回的值的类型。
  • indexType 是索引的类型。
  • this[index] 是索引器的声明,其中 index 是索引参数。
  • get 访问器用于获取与指定索引相关的值。
  • set 访问器用于设置与指定索引相关的值。

假设有一个名为MyCollection的类,可以通过类似myCollection[0]的方式来访问其中的元素。这时候就可以使用索引器。在MyCollection类中定义一个索引器,可以使用整数索引来访问其中的元素。代码中体会更容易理解

创建一个项目,创建一个MyCollection类

cs 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 索引器
{
    internal class MyCollection
    {
        private string[] elements = new string[3] { "1","2","3"}; // 创建1~3字符串的数组

        // 索引器定义
        public string this[int index]
        {
            get
            {
                // 在获取元素时,返回对应索引的元素
                return elements[index];
            }
            set
            {
                // 在设置元素时,将值赋给对应索引的元素
                elements[index] = value;
            }
        }
    }
}

program类:

cs 复制代码
namespace 索引器
{
    internal class Program
    {

        static void Main(string[] args)
        {
            MyCollection collection = new MyCollection();

            // 修改第一个元素的值
            collection[0] = "Element 1";
     
            // 获取第一、二个元素的值
            string element1 = collection[0];
            string element2 = collection[1];


            // 打印第一、二个元素的值
            Console.WriteLine("第一个元素的值是:" + element1);
            Console.WriteLine("第二个元素的值是:" + element2);

        }
    }

结果:

相关推荐
咸鱼翻身小阿橙10 分钟前
C# WinForms 控件学习项目
开发语言·学习·c#
JaydenAI25 分钟前
[MAF预定义Agent中间件-03]FunctionInvocationDelegatingAgent:将AOP引入函数调用
ai·c#·agent·aop·maf
.NET修仙日记34 分钟前
.NET 领域驱动设计:用户角色更新如何从应用服务落地到领域实体(代码拆解)
c#·.net·领域驱动设计·微软技术·角色设计
.NET修仙日记1 小时前
Scrutor:.NET 依赖注入自动化的优雅实现
c#·.net·.net core·微软技术·依赖注入·scrutor
xiaoshuaishuai81 小时前
C# Avalonia 依赖属性与WPF的区别
开发语言·c#·wpf
leo__52015 小时前
C# 虚拟键盘(软键盘)实现
单片机·c#·计算机外设
周杰伦fans16 小时前
AutoCAD C# 二次开发:如何精确监听工作空间切换事件
前端·c#
用户37215742613517 小时前
如何使用 C# 自动调整 Excel 行高和列宽
c#
AI导出鸭PC端17 小时前
智谱清言怎么生成word文档?AI导出鸭终结乱码烦恼
人工智能·ai·c#·word·豆包·ai导出鸭
就叫_这个吧17 小时前
IDEA中Javaweb项目创建+servlet,实现简单的信息录入获取
java·servlet·intellij-idea·web