Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Модификатор 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);
}

Оглавление книги


Генерация: 1.311. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз