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

Как передать в качестве аргумента функции ссылку на массив

09.04.2016, 00:57. Показов 3464. Ответов 7
Метки нет (Все метки)

Приветствую. Из названия я думаю вопрос понятен, но я поясню. Есть функция которая на выходе выдаёт массив, но мне не нужно чтобы она возвращала массив, мне нужно заполнять каждый раз новый массив чтобы их можно было сравнить и сделать выводы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2016, 00:57
Ответы с готовыми решениями:

Как передать массив в качестве необязательного аргумента?
В C# есть аргументы по умолчанию, которые не обязательно передавать. ну как-то так пишется...

Как в качестве аргумента функции передать массив?
Доброго времени суток! Расскажите, пожалуйста, если не затрудняет, как в качестве аргумента...

Как передать функции массив в качестве аргумента?
Всем привет! Подскажите, как передать функции массив в качестве аргумента? И как сделать, чтобы...

Передать указатель на массив в качестве аргумента функции
Работаю в Visual Studio 2012 Ultimate, задание - сделать свою библиотеку. Пишу на Visual C++. Решил...

__________________

Записывайтесь на профессиональные курсы С#-разработчиков‌
7
8161 / 4421 / 1734
Регистрация: 11.02.2013
Сообщений: 9,405
09.04.2016, 01:11 2
Лучший ответ Сообщение было отмечено Graf1385 как решение

Решение

C#
1
void ChangeArray(ref int[] array)
1
2346 / 1767 / 209
Регистрация: 07.01.2011
Сообщений: 10,337
09.04.2016, 15:21 3
зачем ссылку передавать через ref ?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        static void Main(string[] args)
        {
            int[] arr = new int[3] { 1, 2, 3 };
            Print(arr);
 
            foreach (var data in arr)
                Console.WriteLine(data);
        }
        static void Print(int[] arr)
        {
            foreach (var data in arr)
                Console.WriteLine(data);
 
            arr[1] = 100;
        }
Код
1
2
3
1
100
3
Press any key to continue . . .
0
8161 / 4421 / 1734
Регистрация: 11.02.2013
Сообщений: 9,405
09.04.2016, 16:18 4
Лучший ответ Сообщение было отмечено Graf1385 как решение

Решение

zewer, затем, что изменить задать новый массив ты не сможешь, только изменить отдельные элементы
1
2346 / 1767 / 209
Регистрация: 07.01.2011
Сообщений: 10,337
09.04.2016, 16:25 5
Цитата Сообщение от ViterAlex Посмотреть сообщение
что изменить задать новый массив ты не сможешь
можно показать в коде что именно я не смогу ?
0
8161 / 4421 / 1734
Регистрация: 11.02.2013
Сообщений: 9,405
09.04.2016, 16:38 6
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
static void Main(string[] args)
{
    var ar = new int[2] { 1, 2 };
    Console.WriteLine("Исходный массив: {0}", string.Join(", ", ar));
    ChangeArray(ar);
    Console.WriteLine("Массив, переданный не по ссылке: {0}", string.Join(", ", ar));
    ChangeArray(ref ar);
    Console.WriteLine("Массив, переданный по ссылке: {0}", string.Join(", ", ar));
    Console.Read();
}
 
private static void ChangeArray(int[] arr)
{
    arr = new int[5] { 1, 2, 3, 4, 5 };
}
 
private static void ChangeArray(ref int[] arr)
{
    arr = new int[5] { 1, 2, 3, 4, 5 };
}
2
2346 / 1767 / 209
Регистрация: 07.01.2011
Сообщений: 10,337
09.04.2016, 16:55 7
ViterAlex, я так понимаю, при передаче ссылки с помощью ref, можно изменять адрес на новый обьект не только в масивах, но и в любых других ссылочных типах ?
0
8161 / 4421 / 1734
Регистрация: 11.02.2013
Сообщений: 9,405
09.04.2016, 17:06 8
Для того и существует ref
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2016, 17:06

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Вызов родовой функции (нужно передать массив в качестве аргумента функции через указатель)
#include <iostream> using namespace std; template <class T1> class mas { public: T1 n; T1...

Как передать функции указатель на функцию в качестве аргумента?
как передать функции указатель на функцию в качестве аргумента?

Как передать оконную процедуру в качестве аргумента моей функции?
Я пожалуй для своего вопроса не буду создавать новую тему, нашел более менее подходящее под...

Как передать столбец данных из DataTable в качестве аргумента функции
Добрый день. 1. Есть три таблицы DataTable две с входными данными и одна с результатами расчета:...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.