Создает многомерный массив Array заданного типа Type с заданными длинами - C#

Узнай цену своей работы

Формулировка задачи:

метод CreateInstance, по описанию в msdn, должен делать следующее: Создает многомерный массив Array заданного типа Type с заданными длинами по измерениям и нижними границами. (что удобно, можно создавать массив с индексацией от 1) создаю вот таким кодом:
        int[] Len = {2}; //длина
        int[] Ind = {1}; // начальный индекс
        Array myArray=Array.CreateInstance( typeof(int), Len, Ind);
но обращаться к элементам такого массива, как я понял можно только с помощью таких методов как SetValue, GetValue. при обращении же обычным способом
myArray[1]=55;
вылетает ошибка: Невозможно применить индексирование через [] к выражению типа "System.Array"/

Вопрос:

можно ли что нибудь сделать с этим массивом, чтобы к нему можно было обращаться обычным способом?(через индексы [], а не через методы)

Решение задачи: «Создает многомерный массив 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;
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5
Похожие ответы