C# 类中索引器的使用

 索引器(Indexer)是C#引入的一个新型的类成员,它使得类中的对象可以像数组那样方便、直观的被引用。索引器非常类似于属性,但索引器可以有参数列表,且只能作用在实例对象上,而不能在类上直接作用。定义了索引器的类可以让您像访问数组一样的使用 [ ] 运算符访问类的成员。(当然高级的应用还有很多,比如说可以把数组通过索引器映射出去等等)

      本文只是简单演示一下索引器的概念和基本的使用方法:

请看代码,下面是类的定义,中间包含了一个索引器定义

类的定义
    public class Person
    {
        //定义两个字段信息
        private string name;
        private string password;

        //定义一个 Name 属性来操作 name 字段
        public string Name
        {
            set { name = value; }
            get { return name; }
        }

        //定义一个 Password 属性来操作 password 字段
        public string Password
        {
            set { password = value; }
            get { return password; }
        }

        //定义索引器,name 字段的索引值为 0 ,password 字段的索引值为 1
        public string this[int index]
        {
            get
            {
                if (index == 0) return name;
                else if (index == 1) return password;
                else return null;
            }
            set
            {
                if (index == 0) name = value;
                else if (index == 1) password = value;
            }
        }
    }

下面是使用索引器的方法:

索引器使用
    protected void Page_Load(object sender, EventArgs e)
    {
        //声明并实例化这个类
        Person p = new Person();

        //使用索引器的方式来给类的两个属性赋值
        p[0] = "jarod";
        p[1] = "123456,./";

        //使用类属性取得两个字段信息
        Label1.Text = p.Name + " / " + p.Password;
    }

非常简单,在上面的类中我们把类的 name 字段映射的索引值为 0,而 password 字段映射的索引值为 1。有了这个映射就可以使用以下方式为类的 name 和 password 赋值了。


   <span style="white-space:pre">	</span>p[0] = "jarod";    //设置 name 字段值
        p[1] = "123456,./";  //设置 password 字段值

赋值后,就可以使用属性方法访问到刚刚给两个字段赋的值了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
索引(Indexer)是C#一种特殊的属性(Property),可以通过类似于数组下标的形式来访问类中的数据成员。其实现过程如下: 1. 在类中定义索引:在类中定义一个带有get和set方法的索引,用于获取和设置索引对应的值。索引的定义类似于属性的定义,但是使用this关键字来指定索引。 2. 实现索引的get和set方法:在索引的get和set方法,根据索引值进行相应的操作。可以将索引值作为参数传入get和set方法,并使用索引值来操作类中的数据成员。 3. 使用索引:通过类似于数组下标的形式来访问类中的数据成员。可以使用类的实例来访问索引,并传入相应的索引值来获取或设置对应的值。 下面是一个使用索引的示例代码: ```csharp class MyClass { private int[] data = new int[10]; // 索引,用于访问data数组 public int this[int index] { get { return data[index]; } set { data[index] = value; } } } class Program { static void Main(string[] args) { MyClass myClass = new MyClass(); // 使用索引设置数值 myClass[0] = 1; myClass[1] = 2; myClass[2] = 3; // 使用索引获取数值 int value1 = myClass[0]; int value2 = myClass[1]; int value3 = myClass[2]; } } ``` 在上述代码,定义了一个名为MyClass的类,其包含一个名为data的数组私有成员。通过定义一个索引来访问该数组。在程序,通过实例化MyClass类的对象,使用索引来设置和获取data数组的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值