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

C#之索引器

編輯:C#入門知識

索引器:索引器允許類或結構的實例按照與數組相同的方式進行索引。索引器類似於屬性,不同之處在於它們的訪問器采用參數。

語法:[訪問修飾符] 數據類型 this [數據類型 標識符]

{

get{};

set{};

}

下面是視頻中的一個實例,描述的是通過索引,名稱對照片進行檢索。

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

namespace ConsoleApplication11
{
    class Program
    {
        static void Main(string[] args)
        {
            Ablum MyAblum1=new Ablum (2);               //創建容量為2的相冊
            //創建2張照片
            Photo first=new Photo ("小楚");             
            Photo second=new Photo ("小王");
            //向相冊加載照片
            MyAblum1 [0]=first ;                        
            MyAblum1 [1]=second;
            //按索引檢索
            Photo testPhots=MyAblum1 [0];               
            Console .WriteLine (testPhots.Title );       
            //按名稱檢索
            Photo testPhotos=MyAblum1 ["小王"];          
            Console .WriteLine (testPhotos .Title );


        }
    }
    class Photo
    {
        private string PhotoTitle;                       //聲明私有變量
        //建立默認值的構造函數
        public Photo()                                  
        { 
            PhotoTitle ="楚廣明";

        }
        public Photo (string title)                      //含有一個參數的構造函數
        {
            PhotoTitle =title ;
        }
        public string Title                               //指定返回值
        {
            get {return PhotoTitle ;}
        }
    }
    class Ablum
    {
        Photo [] photos;                                    //定義數組
        public Ablum ()
        {
            photos =new Photo[3];                            //定義數組默認元素個數
         }
        public Ablum (int Capacity)                          //數組的元素任意個數
        {
            photos =new Photo [Capacity ];
         }
        public Photo this[int index]                         //帶有int參數的Photo索引器
        {
            get {                                             //訪問
                if (index <0||index >=photos .Length )          //驗證索引范圍
                {
                    Console .WriteLine ("索引有問題");
                        return null ;                         //使用null指示失敗
                }
                return  photos [index ];                       //對於有效索引,返回請求的照片
                
            }
            set {
                if (index <0||index >=photos .Length )
                {
                    Console.WriteLine("索引有問題");
                        return;
                }
                photos [index ]=value ;
            }
        }
        public Photo this[string  title]                        //帶有string參數的Photo索引器
        {
            get {
                foreach (Photo p in photos )                      //遍歷數組中的所有照片
                {
                    if (p.Title ==title )                         //將照片中的標題與索引器參數進行比較
                        return p;
                }
                Console.WriteLine ("找不到");
                return  null ;
            }
        }
    }
}



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