параметр out

Ключевое слово out означает, что передача методу переменной происходит по ссылке.
При передаче переменной методу по ссылке, происходит реальная передача значения переменной, поэтому, значение после выполнения метода изменяется.
В отличие от параметра ref, при параметре out переменные могут быть не инициализированы.
При вызове метода, ключевое слово out нужно указывать явно.
С помощью параметра out метод, может принимать несколько аргументов, может возвращать несколько значений.
Скрыть

Показать

Копировать
  Main.cs  
  • using System;
  •  
  • class One {
  •  public decimal val0;
  •  public decimal val1;
  •  public decimal val2;
  •   
  •  //несколько аргументов передаются по значению
  •  //метод присваивает значения полям
  •  public void Fun(out decimal arg0, out decimal arg1, out decimal arg2) {
  •   arg0 = 5;
  •   arg1 = 10;
  •   arg2 = 15;
  •  }
  • }
  •  
  • class Program {
  •  public static int Main() {
  •   One O = new One();
  •   //при вызове метода, ключевое слово out нужно указывать явно
  •   O.Fun(out O.val0, out O.val1, out O.val2);
  •   Console.WriteLine(O.val0);
  •   Console.WriteLine(O.val1);
  •   Console.WriteLine(O.val2);
  •   Console.ReadKey();
  •   return 0;
  •  }
  • }
5
10
15