C#索引器

假設我們要定義一個類 Employee,它帶有3個string型字段,那麼可以使用字段的名稱來訪問它們。


如:

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

namespace Learning
{
    class Employee
    {
        public string LastName;
        public string FirstName;
        public string CityOfBirth;
    }

    class Program
    {
       
        static void Main(string[] args)
        {
            Employee emp1 = new Employee();

            emp1.LastName = "Doe"; 
            emp1.FirstName = "Jane";
            emp1.CityOfBirth = "Dallas";

            Console.WriteLine("{0}", emp1.LastName);
            Console.WriteLine("{0}", emp1.FirstName);
            Console.WriteLine("{0}", emp1.CityOfBirth);

            
        }     
    }
}


然而有的時候,使用索引訪問它們會更加的方便。


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

namespace Learning
{
    class Employee
    {
        public string LastName;
        public string FirstName;
        public string CityOfBirth;

        public string this[int index]
        {
            set
            {
                switch (index)
                {
                    case 0: LastName = value;
                        break;
                    case 1: FirstName = value;
                        break;
                    case 2: CityOfBirth = value;
                        break;

                    default :
                        throw new ArgumentOutOfRangeException("index");
                }
            }
            get
            {
                switch (index)
                {
                    case 0: return LastName;
                    case 1: return FirstName;
                    case 2: return CityOfBirth;

                    default :
                        throw new ArgumentOutOfRangeException("index");
                }
            }
        }
    }

    class Program
    {
       
        static void Main(string[] args)
        {
            Employee emp1 = new Employee();

            emp1[0] = "Doe";
            emp1[1] = "Jane";
            emp1[2]= "Dallas";

            Console.WriteLine("{0}", emp1[0]);
            Console.WriteLine("{0}", emp1[1]);
            Console.WriteLine("{0}", emp1[2]);

            
        }     
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章