Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 41
1

Метод изменяет исходные данные в масстве, который был передан как аргумент

24.11.2015, 12:51. Показов 1038. Ответов 4
Метки нет (Все метки)

Почему метод изменяет исходные данные в масстве, который был передан как аргумент?

List<Point> getPath(int[,] _worldXY, int StartX, int StartY, int EndX, int EndY)
{

}

Как сделать иначе: чтобы создавался отдельный, экземпляр для работы в методе, и не влиял на исходный.

Заранее спасибо =)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2015, 12:51
Ответы с готовыми решениями:

Напишите метод, который принимает массив как аргумент и возвращает N
Вам задан массив (который будет иметь длину не менее 3, но может быть очень большой), содержащий...

Как узнать name контрола который передан по ссылке
Convert (toolstripButton1) ; ... public static Convert (object obj) { Type t = obj....

Как считать данные из бинарного файла который был записан таким методом?
Как считать данные из бинарного файла который был записан таким методом? string FileName =...

Обращение к массиву в методе, который передан как объект
Передал массив в метод как объект. В методе можно извлечь свойства этого массива. Как в таком...

4
Администратор
Эксперт .NET
13993 / 11352 / 4597
Регистрация: 17.03.2014
Сообщений: 22,948
Записей в блоге: 1
24.11.2015, 13:07 2
Лучший ответ Сообщение было отмечено Andrean4ik как решение

Решение

Andrean4ik, Меняется значение массива
1
Модератор
Эксперт .NET
5820 / 4697 / 2940
Регистрация: 20.04.2015
Сообщений: 8,359
24.11.2015, 13:09 3
C#
1
2
3
4
5
6
7
8
9
List<Point> getPath(int[,] _worldXY, int StartX, int StartY, int EndX, int EndY)
{
    int[,] temp = new int[_worldXY.GetLength(0), _worldXY.GetLength(1)];
    for (int i = 0; i < temp.GetLength(0); i++)
        for (int j = 0; j < temp.GetLength(1); j++)
            temp[i, j] = _worldXY[i, j];
    //дальше работаем с массивом temp
    //...
}
1
Администратор
Эксперт .NET
13993 / 11352 / 4597
Регистрация: 17.03.2014
Сообщений: 22,948
Записей в блоге: 1
24.11.2015, 13:15 4
Даценд, многа букф. Проще использовать Clone или Array.Copy.
1
Модератор
Эксперт .NET
5820 / 4697 / 2940
Регистрация: 20.04.2015
Сообщений: 8,359
24.11.2015, 13:28 5
OwenGlendower,
для 2-мерного сработают Clone или Array.Copy?

Добавлено через 4 минуты
Действительно Clone работает.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.11.2015, 13:28

Написать программу на языке С + + которая реализует конструктор который инициализирует исходные данные класса
#include &lt;vcl.h&gt; #include &lt;iostream.h&gt; #include &lt;conio.h&gt; struct Phone { char...

Необработанное исключение по адресу 0x0FFCE906. Недопустимый параметр был передан функции
В Binar.cpp появляется необработанное исключение. Подскажите, как это исправить, пожалуйста. ...

Прочитать данные с диска который был в RAID 1
Добрый день, достал из NAS'a &quot;hecus3200pro&quot; диск который был в RAID1 (всего два диска в рейде...

Может определить, был ли передан параметр, если нет, то присвоить значение 'по умолчанию'?
Я новичок в php, только осваиваю. Такой вот вопрос: Мой скрипт обрабатывает переменную, которая...

Составить линейный алгоритм и программу в которой вводятся исходные данные, вычисляются исходные выражения и выводятся на экран результаты вычислений
Приветствую! Вот попалась задачка - уже второй час ломаю голову. Надо составить линейный алгоритм...

Посчитать, сколько раз будет вызвана рекурсивная функция, если ей будет передан заданный аргумент
int foo(int n) { if (n &lt;= 0) return 1; return foo((n * 2) / 3) + foo(n - 2);...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru