Console.WriteLine("а до вызрва: " + a); ob.Sqr(ref a); // обратите внимание на применение модификатора ref Console.WriteLine("а после вызова: " + а);
}
}
Как видите, модификаторrefуказывается перед объявлением параметра в самом методе и перед аргументом при вызове метода. Ниже приведен результат выполнения данной программы, который подтверждает, что значение аргументаадействительно было изменено с помощью методаSqr ().
а до вызова: 10 а после вызова: 100
Теперь, используя модификаторref,можно написать метод, переставляющий местами значения двух своих аргументов простого типа. В качестве примера ниже приведена программа, в которой метод Swap () выполняет перестановку значений двух своих целочисленных аргументов, когда он вызывается.
// Поменять местами два значения.
using System;
class ValueSwap {
// Этот метод меняет местами свои аргументы, public void Swap(ref int a, ref int b) { int t; t = a; a = b; b = t;
}
}
class ValueSwapDemo { static void Main() {
ValueSwap ob = new ValueSwap();
int x=10, у = 20;
Console.WriteLine("x и у до вызова: " + х + " " + у); ob.Swap (ref х, ref у);
Console.WriteLine("х и у после вызова: " + х + " " + у);
}
}
Вот к какому результату приводит выполнение этой программы.
х и у до вызова: 10 20 х и у после вызова: 20 10
В отношении модификатораrefнеобходимо иметь в виду следующее. Аргументу, передаваемому по ссылке с помощью этого модификатора, должно быть присвоено значение
Использование модификатора параметра out