Indexing with an Integer Indexer : Indexer « Class « C# / CSharp Tutorial






  1. It is possible to overload the [ ] operator for classes that you create with an indexer.
  2. An indexer allows an object to be indexed like an array.
using System;
using System.Collections;

class Pair
{
    public Pair(string name, object data)
    {
        this.name = name;
        this.data = data;
    }
    public string Name
    {
        get
        {
            return(name);
        }
        set
        {
            name = value;
        }
    }
    public object Data
    {
        get
        {
            return(data);
        }
        set
        {
            data = value;
        }
    }
    string    name;
    object data;
}
class PairList
{
    public PairList()
    {
        row = new ArrayList();
    }
    
    public void Load() 
    {
        /* load code here */ 
        row.Add(new Pair("A", 5551212));
        row.Add(new Pair("B", "Fred"));
        row.Add(new Pair("C", 2355.23m));
    }
    
    // the indexer
    public Pair this[int column]
    {
        get
        {
            return((Pair) row[column - 1]);
        }
        set
        {
            row[column - 1] = value;
        }
    }
    ArrayList    row;    
}
class MainClass
{
    public static void Main()
    {
        PairList row = new PairList();
        row.Load();
        Console.WriteLine("Column 0: {0}", row[1].Data);
        row[1].Data = 12;    
    }
}
Column 0: 5551212








7.40.Indexer
7.40.1.Creating One-Dimensional Indexers
7.40.2.Indexing with an Integer Indexer
7.40.3.Indexing with an String Indexer
7.40.4.Indexing with Multiple Parameters
7.40.5.Define both int and string indexer for a class
7.40.6.Use indexer to add element
7.40.7.Define getter only indexer
7.40.8.Use an indexer to create a fail-soft array.
7.40.9.Overload the MyArray indexer
7.40.10.Indexers don't have to operate on actual arrays
7.40.11.Indexer based on 0 or non-zero
7.40.12.Indexer based on switch statement
7.40.13.Indexer for generic type
7.40.14.Using a string as an indexer value