Модификатор out
Модификатор out
Теперь рассмотрим использование параметров out (от output – выходной). Если метод определен с выходными параметрами, то необходимо назначить этим параметрам подходящие значения до выхода из метода (если этого не сделать, будет сгенерирована ошибка компиляции).
Ниже для иллюстрации предлагается альтернативный вариант метода Add(), использующий C#-модификатор out и возвращающий сумму двух целых чисел в виде выходного параметра (обратите внимание на то, что возвращаемым значением самого метода теперь будет void).
// Выходные параметры задаются членом.
public static void Add(int x, int y, out int ans) {
ans = x + y;
}
При вызове метода с выходными параметрами тоже требуется указать модификатор out. Локальным переменным, используемым в качестве выходного параметра, не требуется присваивать значения до их использования (эти значения после вызова все равно будут потеряны), Например:
static void Main(string[] args) {
// Нет необходимости задавать значения
// локальным выходным переменным.
int ans;
Add(90, 90, out ans);
Console.WriteLine("90 + 90 = {0} ", ans);
}
Этот пример предлагается здесь только для иллюстрации: нет никакой необходимости возвращать значение суммы с помощью выходного параметра. Но сам модификатор out играет очень важную роль: он позволяет вызывающей стороне получить множество возвращаемых значений от одного вызова метода.
// Возвращение множества выходных параметров.
public static void FillTheseVals(out int a, out string b, out bool c) {
а = 9;
b = "Радуйтесь своей строке.";
с = true;
}
Вызывающая сторона может вызвать этот метод следующим образом.
static void Main(string[] args) {
int i; string str; bool b;
FillTheseVals(out i, out str, out b);
Console.WriteLine("Int равно: {0}", i);
Console.WriteLine("String равно: (0}", str);
Console.WriteLine("Boolean равно: {0}", b);
}