Создает многомерный массив Array заданного типа Type с заданными длинами - C#
Формулировка задачи:
метод CreateInstance, по описанию в msdn, должен делать следующее:
Создает многомерный массив Array заданного типа Type с заданными длинами по измерениям и нижними границами.
(что удобно, можно создавать массив с индексацией от 1)
создаю вот таким кодом:
но обращаться к элементам такого массива, как я понял можно только с помощью таких методов как SetValue, GetValue.
при обращении же обычным способом
вылетает ошибка: Невозможно применить индексирование через [] к выражению типа "System.Array"/
int[] Len = {2}; //длина
int[] Ind = {1}; // начальный индекс
Array myArray=Array.CreateInstance( typeof(int), Len, Ind);myArray[1]=55;
Вопрос:
можно ли что нибудь сделать с этим массивом, чтобы к нему можно было обращаться обычным способом?(через индексы [], а не через методы)Решение задачи: «Создает многомерный массив Array заданного типа Type с заданными длинами»
textual
Листинг программы
class MyArray<T>
{
private T[] _array;
private uint _lowerBound;
public T this[int i]
{
get
{
return _array[i - _lowerBound];
}
set
{
_array[i - _lowerBound] = value;
}
}
public MyArray( int length, uint lowerBound )
{
_array = new T[length];
_lowerBound = lowerBound;
}
}
class Program
{
static void Main( string[] args )
{
MyArray<int> m = new MyArray<int>( 2, 1001 );
m[1001] = 2;
m[1001] = 3;
}
}