Member 12872836 Ответов: 1

Привет, у меня есть эта ошибка, как ее исправить ? "необработанное исключение типа 'System.класса indexoutofrangeexception произошел в grahamscandatamovement.exe"


у меня есть эта проблема, когда я использую свою программу

в этом коде :


private void findSmallestPolygon()
{

    int clockwise = 1;
    int countclockwise = -1;
    int l = 0,m = 1,i = 2;

    finalPointArray = new int[count];
    //take two point
    finalPointArray[l] = 1;
    finalPointArray[m] = 1;
    Pen redPen;
    SolidBrush blueBrush = new SolidBrush(Color.White);

    redPen = new Pen(Color.Red,2);

    //draw line
    dc.DrawLine(redPen, new Point(xcordinate[0], ycordinate[0]), new Point(xcordinate[1], ycordinate[1]));




Вот такая проблема с :
finalPointArray[m] = 1;


Заряжать Помочь !

Что я уже пробовал:

я пытался это исправить, но не могу !

Пожалуйста, помогите мне

1 Ответов

Рейтинг:
7

Wendelius

Вы инициализируете finalPointArray держать count количество предметов. Вы не показываете, что count но, вероятно, слишком мал, чтобы вместить элемент, определенный переменной m.

Лучше всего использовать отладчик и видеть фактические значения переменных для лучшей интерпретации. Также помните, что индексация начинается с 0, поэтому, если у вас есть 3 элемента, индексы будут равны 0,1 и 2.

В качестве побочного комментария я бы посоветовал определить переменные внутри метода. Если информация требуется извне метода, часто рекомендуется передать ее в качестве параметра. Это облегчает отладку, модификацию и понимание программы


Member 12872836

ошибка :
"Индекс находился за пределами массива." "Индекс находился за пределами массива."
что же мне делать ?

Wendelius

Когда вы отлаживаете код и попадаете в строку

finalPointArray[m] = 1;

в чем заключается ценность count и в чем же заключается ценность m

Member 12872836

m равно 1
Но я не знаю Граф

Wendelius

Попробуйте использовать отладчик, каково его значение в count при выполнении следующей строки

finalPointArray = new int[считать];