Учитывая следующий метод:
static void ChangeArray(params string[] array) {
for (int i = 0; i < array.Length; i++)
array[i] = array[i] + "s";
}
Это работает, если я назову его передачей массива строк:
string[] array = {"Michael", "Jordan"} // will become {"Michaels", "Jordans"}
ChangeArray(array);
Но не будет работать, если я вызову его с помощью строковых аргументов:
string Michael = "Michael";
string Jordan = "Jordan";
ChangeArray(Michael, Jordan); // This will NOT change the values of the variables
Я понимаю, что компилятор перенесет Майкла и Джордана на массив, так что не должны ли результаты в обоих случаях одинаковыми?