Si crea in questo modo
codice:
public class Dummy
{
// ...
public Casella this[short x, short y]
{
get
{
return c[x, y];
}
set
{
c[x, y] = value;
}
}
}
In sostanza, si tratta della proprietà indicizzata che ti consente di scrivere, ad esempio, questo codice suppondendo che objDummy sia un'istanza della classe Dummy sopra riportata:
codice:
objDummy[x, y] = someValue;
Per creare delle proprietà indicizzate in C#, puoi creare delle classi che fungano da "indicizzatori", lavorando come indicato sopra, e fare in modo che le singole proprietà da indicizzare restituiscano un'istanza della classe per l'indicizzazione.
E' più difficile da spiegare che da fare... 
Ciao!