Досить часто виникає необхідність в методах, які формують декілька величин, наприклад, якщо в методі створюються об'єкти або ініціалізуються ресурси. В цьому випадку стає незручним обмеження параметрів-посилань: необхідність надання значення аргументу до виклику методу. Це обмеження знімає специфікатор out. Параметру, що має цей специфікатор, має бути обов'язково привласнене значення усередині методу, компілятор за цим стежить. Зате в коді можна обмежитися описом змінною без ініціалізації.
Змінимо опис другого параметра в лістингу 5.4 так, щоб він став вихідним (лістинг 5.5).
При виклику методу перед відповідним параметром теж указується ключове слово out.
Лістинг 5.5. Вихідні параметри
using System;
namespace ConsoleApplicationl
{
class Class1
{
static void P( int a, out int b )
{
a = 44; b = 33;
Console.WriteLine( "усередині методу {0} {1}", a, b );
}
static void Main( )
{
int a = 2, b;
P( a, out b );
Console.WriteLine( "після виклику {0} {1}", a, b );
}
}
}
Результат роботи цієї програми:
усередині методу 44 33
після виклику 2 33
Рекомендується, в списку параметрів записуйте спочатку всі вхідні параметри, потім всі посилання і вихідні параметри. Давайте параметрам імена, за якими можна отримати уявлення про їх призначення.