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 赋值了。

p[0] = "jarod";    //设置 name 字段值
p[1] = "123456,./";  //设置 password 字段值
时间: 2024-08-04 17:53:22

C# 类中索引器的使用二的相关文章

描述一下C#中索引器的实现过程,是否只能根据数字进行索引?

不是.可以用任意类型. 索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写. 1.索引器的定义 C#中的类成员可以是任意类型,包括数组和集合.当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作. 定义索引器的方式与定义属性有些类似,其一般形式如下: [修饰符] 数据类型 this[索引类型 index] { get{//获得属性的代码} set{ //设置属性的代码} } 修饰符包括 public,protected,priva

C#中索引器的作用和实现。

官方描述:索引器允许类或结构的实例就像数组一样进行索引.索引器形态类似于,不同之处在于它们的取值函数采用参数. 这一功能在创建集合类的场合特别有用,而在其他某些情况下,比如处理大型文件或者抽象有些资源等,能让类具有类似数组行为也是非常有用的. 大致结构: <modifier><return type> this [argument list] { get{//读} set{//写} } 其中: modifier:修饰符,如:public,private,protected this

Asp.Net中索引器的用法

索引器定义类似于属性,但其功能与属性并不相同.索引器提供一种特殊的方法编写get和set访问器.属性可以像访问字段一样访问对象的数据,索引器可以使用户像访问数组一样访问类成员. 一.索引器特性 1.get 访问器返回值.set 访问器分配值.2.this 关键字用于定义索引器. 3.value 关键字用于定义由 set 索引器分配的值.4.索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制. 5.索引器可被重载.6.索引器可以有多个形参,例如当访问二维数组时.7.索引器使得对象可按照与

C#中的索引器

无法通过方法来知道索引器的长度,只能设定一个固定的长度,所以索引器的作用只能是初始化一个长度有限的数组,也可以用string来当键 class Program { static void Main(string[] args) { man mm = new man(); mm[0] = "jingya"; mm[1] = "dongbao"; mm[2] = "xiaolizi"; mm[3] = "xializi"; for

python_如何在类中定义装饰器

案例: 实现一个能将函数调用信息记录到日志的装饰器 需求: 把每次函数的调用时间,执行时间,调用次数写入日志 可以对被装饰函数分组,调用信息记录到不同日志 动态修改参数,比如日志格式 动态打开关闭日志输出功能 如何解决这个问题? 为了装饰器的灵活性,定义一个装饰类,把这个类的实例方法当做装饰器,在类中装饰器方法持有实例对象,便于修改属性和扩展功能 #!/usr/bin/python3 import logging from time import time, strftime, localtim

面向对象基础——索引器

C#中的string是可以通过索引器来访问对象中的字符,但却不能修改字符的值. 我们来看string中关于索引器的定义,如下图. 上图中索引器如同属性一样,具有get方法,却没有set方法,所以这就是为什么C#中的string类型的变量都是只读的. 现在让我们来编写属于自己的索引器: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Test test = new Test(); 6 Console.WriteLine("te

第六章 数组和索引器 (6.6 索引器)

[案例]本案例在Student类中定义索引器,然后通过stu[i] 来引用Student类的对象实例. [案例目的](1)掌握索引器定义与使用. (2)理解索引器与属性的区别. [代码] namespace Example1 { class Program { static void Main(string[] args) { Student stu = new Student();//stu是Student类的对象名 stu.Sno = "1840"; stu.Name = &quo

C# 索引器使用总结

1.索引器(Indexer): 索引器允许类或者结构的实例按照与数组相同的方式进行索引.索引器类似于属性,不同之处在于他们的访问采用参数. 最简单的索引器的使用 /// <summary> /// 最简单的索引器 /// </summary> public class IDXer { private string[] name=new string[10]; //索引器必须以this关键字定义,其实这个this就是类实例化之后的对象 public string this[int i

C# 索引器 学习

转载原地址: http://www.cnblogs.com/lxblog/p/3940261.html 1.索引器(Indexer): 索引器允许类或者结构的实例按照与数组相同的方式进行索引.索引器类似于属性,不同之处在于他们的访问采用参数. 最简单的索引器的使用 /// <summary> /// 最简单的索引器 /// </summary> public class IDXer { private string[] name=new string[10]; //索引器必须以th