関数パラメータ

この関数のパラメータは引数からコピーされるタイプであるため、関数内で入れ替わるのはそれらのコピーだ。

関数で引数を交換するには、両方のパラメータを参照で渡す必要がある。

void swap(ref int first, ref int second) {
    const int temp = first;
    first = second;
    second = temp;
}
D

この変更により、main()内の変数が入れ替わる:

2 1

元の問題とは関係ないが、tempは関数内で変更されないため、constと指定されている点にも注意。