class IndexedProperty<TIndexer,TValue>
protected readonly Func<TIndexer,TValue> _getter;
protected readonly Action<TIndexer,TValue> _setter;
public IndexedProperty(Func<TIndexer,TValue> getter, Action<TIndexer,TValue> setter)
public TValue this[TIndexer parameter]
return _getter(parameter);
_setter(parameter, value);
private short[] _backingStore = new short[10];
public IndexedProperty<short, short> MyProperty
return new IndexedProperty<short,short>
return _backingStore[key];
_backingStore[key] = val;
public static void Main()
Console.WriteLine(foo.MyProperty[5]);