It looks like you want a property with parameters, which is basically an index. However, you cannot write static indexes in C #.
Of course, you could just write a property that returns an array, but I assume you don't want to do this for encapsulation reasons.
Another alternative would be to write methods GetFoo(int x, int y)and SetFoo(int x, int y, int value).
- . - , , :
public class Wrapper<T>
{
private readonly T[,] array;
public Wrapper(T[,] array)
{
this.array = array;
}
public T this[int x, int y]
{
return array[x, y];
}
public int Rows { get { return array.GetUpperBound(0); } }
public int Columns { get { return array.GetUpperBound(1); } }
}
:
public static class Foo
{
private static readonly int[,] data = ...;
public static Wrapper<int> Data
{
get { return new Wrapper<int>(data); }
}
}