вами информация раскрыта о проблеме запутанно (вероятно, из-за языкового барьера), но это одна из двух проблем:
Вы пытаетесь для доступа к arrayName
извне контекста Something
(как в другом классе) проблема заключается в уровне доступа arrayName
(уровень доступа по умолчанию - private
). Если вам нужно разделить arrayName
поле с другим классом, то вы можете просто добавить префикс, public
, например, так:
класс Что-то { // Предположим, что вы index
определены где-то общественное двойное [] ИмяМассива = новый двойной [ 20]; public void Method() { arrayName [index] = value; индекс ++; } }
Вы пытаетесь присвоить значение элемента массива. Код, который у вас должен, должен соответствовать размеру массива, который в вашем случае будет равен index = 20
(или 21 элемент). Как только произойдет следующая итерация, вы столкнетесь с IndexOutOfBoundsException
, потому что в этом массиве недостаточно места для следующего элемента.
Я рекомендую переключиться на List<Double>
, который подобен иметь переменную массив длины. Его реализация будет выглядеть так:
class Something
{
List<Double> listName = new List<Double>();
public void Method()
{
listName[index] = value;
index++;
}
}
Но если вы не можете изменить тип коллекции (хотя я хотел бы предложить, если вам нужна эта функция), вы можете изменить размер массива, если index
больше, чем размер arrayName
. Я могу привести пример (или вы можете найти один из многих через простой поиск), если это окажется тем, что вы ищете.
Что вы подразумеваете под «оценкой массива методом»? –
Добавил код из вашего комментария к вашему вопросу (приспосабливаясь к моим предпочтениям стандартов), если я неверно представил его, пожалуйста, настройте. –