Ваш метод не будет менять никакие параметры вообще.Я имею в виду, что это поменяет параметры внутри вашего метода, но это не повлияет на значения параметров источника.Это потому, что типы значений копируются , когда они передаются в методы.Вот пример:
void IncorrectSwap(int a, int b)
{
int temp = a;
a = b;
b = temp;
}
void HereHappensNothing()
{
int a = 1;
int b = 2;
IncorrectSwap(a, b);
// a still = 1, and b = 2, nothing happens
}
Чтобы ваш метод работал, вы должны передавать типы значений по ссылке так:
void CorrectSwap(ref int a, ref int b)
{
int temp = a;
a = b;
b = temp;
}
void HereSwapHappens()
{
int a = 1;
int b = 2;
CorrectSwap(ref a,ref b);
// a = 2, and b = 1, Ok.
}
Здесь вы можете прочитать о значениитипы и способы работы с ними.
Обновление
После вашего обновления.Я не думаю, что должна быть какая-то существенная разница в производительности, пока типы значений не будут упакованы при передаче через ref .Может быть некоторое наказание, когда вы передаете больше параметров, но я не думаю, что это должно быть значительным, вы не увидите разницу.