csharp.aspone.cz csharp.aspone.cz

Indexery

Indexery jsou prostě jednoduché de fakto metody, které umí pak přistupovat pomocí [], aby to bylo pole. Zde máte jednoduchý příklad na indexery.


using System;
using System.Collections;

    class MyListBox
    {
        // nový seznam dat
        protected ArrayList data = new ArrayList();
        
        // a jdeme na to! definujeme si indexer
        public object this[int idx]
        {
            // pro čtení
            get
            {
                if (idx > -1 && idx < data.Count)
                {
                    return (data[idx]);
                }
                else
                {
                    return null;
                }
            }
            
            // pro zápis
            set
            {
                if (idx > -1 && idx < data.Count)
                {
                    data[idx] = value;
                }
                else if (idx == data.Count)
                {
                    data.Add(value);
                }
        }
    }

    class Indexers1App
    {
        public static void Main()
        {
            MyListBox lbx = new MyListBox();
            
            lbx[0] = "foo";
            lbx[1] = "bar";
            lbx[2] = "baz";
            
            Console.WriteLine("{0} {1} {2}", lbx[0], lbx[1], lbx[2]);
        }
    }