C# introduces a concept known as IndexersThe indexers are usually known as smart arrays in C# community. Defining a C# indexer is much like defining properties. We can say that an indexer is a member that enables an object to be indexed in the same way as an array.
this [argument list]
{
get { // Get codes goes here }
set { // Set codes goes here }
}
Where the modifier can be private, public, protected or internal. The return type can be any valid C# types. The 'this' is a special keyword in C# to indicate the object of the current class. The formal-argument-list specifies the parameters of the indexer. The formal parameter list of an indexer corresponds to that of a method, except that at least one parameter must be specified, and that the ref and out parameter modifiers are not permitted. Remember that indexers in C# must have at least one parameter. Other wise the compiler will generate a compilation error.
The following program shows a C# indexer in action
// C#: INDEXER
using System;
using System.Collections;
class MyClass
{
private string []data = new string[5];
public string this [int index]
{
get
{ return data[index]; }
set
{
data[index] = value; }
}
}
class MyClient
{
public static void Main()
{
MyClass mc = new MyClass();
mc[0] = "Dotnet";
mc[1] = "Logix";
mc[2] = "is";
mc[3] = "really";
mc[4] = "good";
Console.WriteLine("{0},{1},{2},{3},{4}",mc[0],mc[1],mc[2],mc[3],mc[4]); }
}