Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
45 of 1492 menu
◀ ▶

Модификатор out

Параметр out обязан получить значение до выхода из метода - компилятор это проверяет. В вызове перед аргументом пишут out. Переменную можно объявить заранее или прямо в вызове через out var.

Синтаксис

void Метод(out тип имя) Метод(out переменная);

Пример

Давайте запишем ноль в out-аргумент из метода:

using System; class Program { static void SetZero(out int num) { num = 0; } static void Main() { int val; SetZero(out val); Console.WriteLine(val); } }

Результат выполнения кода:

0

Пример

Давайте вернём из метода две величины через out:

using System; class Program { static void SplitTen(out int half, out int rest) { half = 5; rest = 5; } static void Main() { SplitTen(out int a, out int b); Console.WriteLine($"{a} {b}"); } }

Результат выполнения кода:

5 5

Пример

Давайте разберём строку "12345" через TryParse:

using System; class Program { static void Main() { bool ok = int.TryParse("12345", out int res); Console.WriteLine(ok); Console.WriteLine(res); } }

Результат выполнения кода:

True 12345

Пример

Давайте используем out в методе Deconstruct для пользовательского типа:

using System; class Pair { public int Left { get; } public int Right { get; } public Pair(int left, int right) { Left = left; Right = right; } public void Deconstruct(out int left, out int right) { left = Left; right = Right; } } class Program { static void Main() { var pair = new Pair(1, 2); pair.Deconstruct(out int x, out int y); Console.WriteLine($"{x} {y}"); } }

Результат выполнения кода:

1 2

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить