У меня есть 2D-массив под названием «playField». Прежде чем произойдут какие-либо изменения, я создаю 2D-массив tempField и задаю tempField = playField.Что вызывает изменение в моем 2D-массиве?
После нескольких модификаций, которые все работают, я добраться до этой точки в коде:
else {
//at this point both playingField and tempField are unchanged still
boundsNormal = bounds.OutOfBounds(move.MovePlayer(playingField,trekker, direction, rowT, colT));
if(boundsNormal == true){
//for some reason, at this point, tempField gets reassigned to the new playingField (which I'm still not sure why *THAT* changes)
playingField = tempField;
MovePlayer это метод, который изменяет массив 2D он принимает (в данном случае, playingField), и OutOfBounds возвращается true или false, учитывая массив.
Возможно, я понимаю, почему меняется играField, но не знаю, почему tempField должен испытывать какие-либо изменения после инициализации переменной boundsNormal.
Обратите внимание, что 'if (boundsNormal == true)' может быть упрощено до 'if (boundsNormal)' –
как вы определили 'tempField'? Похоже, вы создаете ссылку на 'playField' вместо создания другого 2D-массива. –
@Akshat Singhal - звучит так, как будто вы согласны с Робин Грин; Я не знал, что я только ссылаюсь, я уверен, что инициализация массива с другим массивом была такой же, как и копирование. Спасибо за ваш вклад. – Jona