Pascal and VB.NET
Перевожу прог-у с Паскаля на VB.NET. Вобщем не очень сложно. Но уперся в следующий код (точнее объявление массива):
VAR X1, Y1: ARRAY[-1..7] OF REAL;
X2, Y2: ARRAY[-8..0] OF REAL;
В тексте прог-и идет вызов массива:
zz=X2(-1)
Не могу понять как перевести это на VB.NET. И как использовать.
И еще подскажите пожалуйста. Я перевожу REAL как DOUBLE. Это правильно?
Заранее спасибо.
P.S. Прога астрономическая. Нужна для работы.
В VB.NET нет поддержки массивов с ненулевой нижней границей: в качестве базы адресации используется 0 (в VB6 можно было сделать базой 1). Значение -1 создает пустой массив.
С другой стороны в .NET можно работать с массивами с ненулевой нижней границей, но для этого придется оперировать экземплярами класса System.Array и забыть о типизации (для простых типов это смертельно - будет постоянный boxing/unboxing).
Похоже, что топикстартер просто модифицировал алгоритмы обработки этих массивов. Хотя, как вариант, можно было бы ввести логическое смещение, равное 1 для X1, Y1 и 8 для X2, Y2, с их помощью можно оставить практически без изменения иходный алогритм - останется лишь добавлять соответствующее смещение к индексу при всех обращениях к этим массивам.