次の方法を考えます。
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
コンパイラが Michael と Jordan を配列にラップすることは理解していますが、どちらの場合も結果は同じではないでしょうか?