Отбрасывание
Символ _ в выражении обозначает отбрасывание
- результат нигде не сохраняется. Его передают
в out-аргумент,
когда нужен только успех операции, или пишут
_ = выражение, чтобы явно отбросить
значение слева от присваивания.
Синтаксис
out _
_ = выражение;
Пример
Давайте проверим строку "abcde" через
TryParse и отбросим разобранное число:
using System;
class Program
{
static void Main()
{
bool ok = int.TryParse("abcde", out _);
Console.WriteLine(ok);
}
}
Результат выполнения кода:
False
Пример
Давайте отбросим out-значение для строки
"12345" и выведем только признак успеха:
using System;
class Program
{
static void Main()
{
bool ok = int.TryParse("12345", out _);
Console.WriteLine(ok);
}
}
Результат выполнения кода:
True
Пример
Давайте отбросим результат выражения через
присваивание _:
using System;
class Program
{
static void Main()
{
_ = 12 + 5;
Console.WriteLine("done");
}
}
Результат выполнения кода:
"done"
Пример
Давайте отбросим элемент при деконструкции кортежа и выведем только первую часть:
using System;
class Program
{
static void Main()
{
(int left, _) = (1, 2);
Console.WriteLine(left);
}
}
Результат выполнения кода:
1
Смотрите также
-
объявление в out,
когда разобранное значение всё же нужно -
модификатор
out,
который отдаёт значение через аргумент -
деконструкция,
которая разбирает значение на части -
оператор
is,
который проверяет тип без лишних переменных