`

C#索引器示例代码

    博客分类:
  • C#
阅读更多
/**
 * 索引器允许类和结构的实例按照与数组相同的方式进行索引,索引器类似与属性,不同之处在于他们的访问器采用参数。被称为有参属性。
 * 索引器与属性的比较:
 * □标示方式:属性以名称来标识,索引器以函数签名来标识。
 * □索引器可以被重载。属性则不可以被重载。
 * □属性可以为静态的,索引器属于实例成员,不能被声明为static 
 * 
 * 备注:
 * □所有索引器都使用this关键词来取代方法名。Class或Struct只允许定义一个索引器,而且总是命名为this。 
 * □索引器允许类或结构的实例按照与数组相同的方式进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。 
 * □get 访问器返回值。set 访问器分配值。 
 * □this 关键字用于定义索引器。 
 * □value 关键字用于定义由 set 索引器分配的值。 
 * □索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。 
 * □索引器可被重载。 
 * □索引器可以有多个形参,例如当访问二维数组时。 
 * □索引器可以使用百数值下标,而数组只能使用整数下标:如下列定义一个String下标的索引器 
 * □public int this [string name] {...} 
 * □属性和索引器 
 *   ○属性和索引器之间有好些差别: 
 *   ○类的每一个属性都必须拥有唯一的名称,而类里定义的每一个索引器都必须拥有唯一的签名(signature)或者参数列表(这样就可以实现索引器重载)。 
 *   ○属性可以是static(静态的)而索引器则必须是实例成员。
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace IndexExample
{
    /// <summary>
    /// 多参数索引器实例
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            ScoreIndex si = new ScoreIndex();
            si["张三", 1] = 90;
            si["张三", 2] = 100;
            si["张三", 3] = 80;
            si["李四", 1] = 60;
            si["李四", 2] = 70;
            si["李四", 3] = 50;
            Console.WriteLine("张三的课程号为1的成绩为:{0}", si["张三", 1]);

            Console.WriteLine("张三的所有课程成绩是:");
            ArrayList arr;
            arr = si["张三"];
            foreach (IndexClass ic in arr)
            {
                Console.WriteLine("课程编号:" + ic.CourseId + "\t分数:" + ic.Score);
            }

            Console.Read();
        }
    }

    class IndexClass
    {
        private string _name;
        private int _courseId;
        private int _score;

        public IndexClass(string _name, int _courseId, int _score)
        {
            this._name = _name;
            this._courseId = _courseId;
            this._score = _score;
        }

        public string Name
        {
            get
            {
                return this._name;
            }
            set
            {
                this._name = value;
            }
        }

        public int CourseId
        {
            get
            {
                return this._courseId;
            }
            set
            {
                this._courseId = value;
            }
        }

        public int Score
        {
            get
            {
                return this._score;
            }
            set
            {
                this._score = value;
            }
        }
    }

    class ScoreIndex
    {
        private ArrayList arr;

        public ScoreIndex()
        {
            arr = new ArrayList();
        }

        public int this[string _name, int _courseId]
        {
            get
            {
                foreach (IndexClass ic in arr)
                {
                    if (ic.Name == _name && ic.CourseId == _courseId)
                    {
                        return ic.Score;
                    }
                }
                return -1;
            }
            set
            {
                arr.Add(new IndexClass(_name, _courseId, value));
            }
        }

        public ArrayList this[string _name]
        {
            get
            {
                ArrayList tmp = new ArrayList();
                foreach (IndexClass ic in arr)
                {
                    if (ic.Name == _name)
                        tmp.Add(ic);
                }
                return tmp;
            }
        }
    }
}

分享到:
评论

相关推荐

    C#索引器示例程序

    下面我们将详细讨论C#索引器的概念、语法以及如何创建和使用索引器。 首先,索引器的定义通常在类或结构体中,且返回类型为类的实例本身,这使得我们可以连续调用索引器。例如,`this[int index]`是一个常见的索引...

    c# 索引器三

    通过学习这个C#语言参考视频,你可以深入了解如何在自己的项目中有效地利用索引器,提高代码的可读性和易用性。无论你是初学者还是经验丰富的开发者,对索引器的理解都能帮助你更好地掌握C#的面向对象编程特性。

    C#索引器适合初学者的C#索引器适合初学者的

    最后,理解并熟练使用C#索引器将使你的代码更易读、更直观,特别是在处理自定义数据结构时。对于初学者来说,从基础知识开始,逐渐掌握如何创建和使用索引器,是提升编程技能的重要步骤。通过实践和不断的探索,你将...

    C# 索引器的一个简单例子,模仿数组

    总之,C# 索引器是面向对象编程中一个强大的特性,它使类能够提供类似数组的访问方式,提高了代码的可读性和灵活性。通过理解并恰当使用索引器,开发者可以更好地设计和实现自定义数据结构。在实际编程过程中,根据...

    C#索引器代码,高手请指教

    在C#编程语言中,索引器是一种特殊的方法,它允许类或结构体的实例可以像数组一样通过索...通过分析和学习这个示例,你可以更好地理解索引器的工作方式,并将这种知识应用于自己的项目中,提升代码的灵活性和可读性。

    C#索引器的讲解(1)

    在这个“C#索引器的讲解(1)”中,我们将探讨索引器的基础知识,这是分四部分系列教程的第一部分。 首先,我们需要了解索引器的基本语法。在C#中,索引器通常定义为类或结构的实例成员,并且使用`this`关键字作为...

    C# 类索引器源码

    在C#编程语言中,类索引器是一种特殊的方法,允许开发者通过索引来访问类的成员,就像操作数组或集合一样。索引器使得类能够模拟数组的行为,即便其内部数据结构并非数组。这种功能极大地提高了代码的可读性和易用性...

    C#拼音检索示例代码

    在本项目中,"C#拼音检索示例代码"是一个基于C#编程语言实现的用于中文文本检索的程序。此程序的核心功能是将中文字符转换为对应的拼音,并且支持在数据库中进行模糊查询,以便用户可以利用拼音进行关键词搜索。下面...

    C#索引器的定义代码(可以写成实验)

    ### C#索引器的理解与应用 #### 一、索引器的概念 索引器是C#语言中一种特殊的成员,它允许我们像操作数组那样使用对象。索引器本质上是一种特殊的属性,它使得我们可以使用索引的方式访问类或结构中的元素。在C#中...

    几个有关C#索引器的例子(源代码)几个有关C#索引器的例子(源代码)

    下面将详细探讨C#索引器的概念、语法、使用场景以及示例代码。 ### 一、索引器概念 在C#中,索引器是一种特殊的方法,用于提供类或结构的实例通过下标操作符([])进行访问。这使得用户可以像处理数组一样处理对象...

    c#索引器详解示例

    [修饰符] 数据类型 this[索引类型 index] 代码如下:{ get{//获得属性的代码} set{ //设置属性的代码}} 修饰符包括 public,protected,private,internal,new,virtual,sealed,override, abstract,ex

    C# GUI画图示例代码

    本示例代码着重于使用C#构建GUI来展示柱状图和走势图,这是数据分析和展示数据趋势的常见方式。这两种图表类型在商业智能、统计分析以及日常的数据处理中都极为常见。 首先,让我们详细了解柱状图。柱状图是一种...

    学习C# 最经典的示例(源代码)学习C# 最经典的示例(源代码)

    C# HELLOW示例,YIELD示例,XML注释示例,不安全代码示例,OLEDB示例,版本控制示例,线程示例,数组示例,属性示例,可空类型示例,事件示例,代理示例,类库示例,COM平台示例,安全性示例,结构示例,特性示例,运算符重载示例,命...

    C#视频 索引器一

    在C#编程语言中,索引器是一种特殊的方法,它允许类或结构的实例通过一个类似于数组的语法来访问其内部的数据。索引器的概念引入,使得开发者可以自定义对象的...记得配合视频中的示例代码进行实践,以加深理解和记忆。

    关于C#索引器

    C#中的索引器是一种特殊类型的成员,它允许对象像数组一样通过索引进行访问,但其实现方式更加灵活。索引器的概念是基于数组访问的便利性,但超越了数组的限制,允许使用自定义的数据结构和任意类型的索引来访问数据...

    C#索引器的讲解(2)

    在本教程中,我们将深入探讨C#索引器的原理、用法以及最佳实践。 首先,索引器的语法与普通方法类似,但它们的定义使用了`this`关键字作为返回类型的一部分,并且通常接受一个或多个参数。这些参数代表索引值,用来...

    c# 索引器二

    索引器的关键在于它们提供了语法糖,使得代码更加简洁易读。例如,通过索引器,你可以直接写`myCollection[0]`来访问第一个元素,而不是调用`myCollection.GetElement(0)`这样的方法。这使得与数组或集合类的交互...

    c#数组索引器集合典型程序示例

    在C#编程语言中,数组和索引器是两种非常基础且重要的概念,它们在创建和操作数据集合时起着核心作用。数组是一种线性数据结构,用于存储同类型的元素集合,而索引器则提供了类似数组的访问方式,使得类的实例可以像...

    c#索引器详解[归类].pdf

    总的来说,C#的索引器是提高代码灵活性和易用性的强大工具,允许开发者根据具体需求自定义数据的访问方式。无论是简单的整数索引还是复杂的多参数索引,它们都能帮助我们更方便地操作数据结构。在软件开发中,合理...

    索引器的定义 c# 适合初学者

    在这里,你可以找到相关的教程、示例代码和讨论,帮助你更好地理解和应用C#中的索引器。 总的来说,索引器是C#中一个强大的工具,它使我们能够以更自然的方式访问和操作数据。对于初学者来说,掌握索引器的用法能够...

Global site tag (gtag.js) - Google Analytics