Метод не запускается повторно, если не передавать какие-либо значения
Передаю в метод массив, в первый раз всё выводит, но повторно он больше не запускается.
Я же создал в нём второй массив, верно? Почему так?
void Main()
{
int[] names = new int[] { 1, 2, 3, 4 };
Calc(names);
names [0] = 9;
Calc(); //Здесь он не запускается
Console.WriteLine("end");
}
void Calc(params int[] mars)
{
int[] pars = new int[mars.Length];
for (int i = 0; i < mars.Length; i++)
{
pars[i] = mars[i];
Console.WriteLine(pars[i]);
}
}
Ответы (2 шт):
Автор решения: Roman C
→ Ссылка
Не запускается Calc() потому, что такого метода нету. Метод определяется сигнатурой, которая определяет количество и порядок параметров, в соответствии с их типами.
Для того, чтобы вызвать метод, как и в первом случае нужно передать параметер в метод при вызове. Или же создать метод, который перегружает метод Calc(int[]) без параметров.
static void Calc() {
Calc(names);
}
Вот весь код.
Автор решения: BAHAMEN
→ Ссылка
При втором вызове, передайте в параметры Calc(names); Вы изменили значение, но не вставили его в повторный вызов.