程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#索引器作用與應用

C#索引器作用與應用

編輯:C#入門知識

索引器允許類和結構的實例按照與數組相同的方式進行索引,索引器類似與屬性,不同之處在於他們的訪問器采用參數。被稱為有參屬性。
簡單的索引器實例:
class Program
    {
        static void Main(string[] args)
        {
            IndexClass a = new IndexClass();
            a[0] = "陳三";
            a[1] = "戴四";
            a[2] = "笠五";
            Console.WriteLine("a[0]=" + a[0]);
            Console.WriteLine("a[1]=" + a[1]);
            Console.WriteLine("a[2]=" + a[2]);
            Console.ReadKey();
        }
    }
    class IndexClass
    {
        private string[] name = new string[10];
        public string this[int index]
        {
            get { return name[index]; }
            set { this.name[index] = value; }
        }
    }
索引器與數組的比較:
索引器的索引值不受類型限制。用來訪問數組的索引值一定是整數,而索引器可以是其他類型的索引值。
索引器允許重載,一個類可以有多個索引器。
索引器不是一個變量沒有直接對應的數據存儲地方。索引器有get和set訪問器。
索引器允許類和結構的實例按照與數組相同的方式進行索引,索引器類似與屬性,不同之處在於他們的訪問器采用參數。被稱為有參屬性。
簡單的索引器實例:
索引器與屬性的比較:
標示方式:屬性以名稱來標識,索引器以函數簽名來標識。
索引器可以被重載。屬性則不可以被重載。
屬性可以為靜態的,索引器屬於實例成員,不能被聲明為static
多參數索引器實例:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace Study
{
    class Program
    {
        static void Main(string[] args)
        {
            ScoreIndex s = new ScoreIndex();
            s["張三", 1] = 90;
            s["張三", 2] = 100;
            s["張三", 3] = 80;
            s["李四", 1] = 60;
            s["李四", 2] = 70;
            s["李四", 3] = 50;
            Console.WriteLine("張三課程編號為1的成績為:" + s["張三",1]);
            Console.WriteLine("張三的所有成績為:");
            ArrayList temp;
            temp = s["張三"];
            foreach (IndexClass b in temp)
            {
                Console.WriteLine("姓名:" + b.Name + "課程編號:" + b.CourseID + "分數:" + b.Score);
            }
            Console.ReadKey();
        }
    }
    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 _name; }
            set { this._name = value; }
        }
        public int CourseID
        {
            get { return _courseid; }
            set { this._courseid = value; }
        }
        public int Score
        {
            get { return _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 a in arr)
                {
                    if (a.Name == _name && a.CourseID == _courseid)
                    {
                &

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved