Метод не запускается повторно, если не передавать какие-либо значения

Передаю в метод массив, в первый раз всё выводит, но повторно он больше не запускается.

Я же создал в нём второй массив, верно? Почему так?

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); Вы изменили значение, но не вставили его в повторный вызов.

→ Ссылка