Выражение switch
Выражение switch сравнивает значение с
вариантами и сразу даёт результат выражения.
Слева - проверяемое значение, справа после
switch - список веток "значение => результат"
и запасной вариант _.
Инструкция switch
выполняет код в ветках, а не возвращает значение.
Синтаксис
результат = значение switch
{
вариант1 => результат1,
вариант2 => результат2,
_ => результатПоУмолчанию
};
Пример
Давайте получим текстовую метку для числа 2:
using System;
class Program
{
static void Main()
{
int num = 2;
string res = num switch
{
1 => "one",
2 => "two",
_ => "other"
};
Console.WriteLine(res);
}
}
Результат выполнения кода:
"two"
Пример
Давайте обработаем значение через запасную ветку _:
using System;
class Program
{
static void Main()
{
int num = 7;
string res = num switch
{
1 => "one",
2 => "two",
_ => "other"
};
Console.WriteLine(res);
}
}
Результат выполнения кода:
"other"
Пример
Давайте выберем код по первому символу строки:
using System;
class Program
{
static void Main()
{
string str = "abcde";
char ch = str[0];
string res = ch switch
{
'a' => "starts with a",
'1' => "starts with digit",
_ => "other start"
};
Console.WriteLine(res);
}
}
Результат выполнения кода:
"starts with a"
Пример
Давайте вложим выражение switch в более
крупное выражение:
using System;
class Program
{
static void Main()
{
int num = 3;
int res = (num switch
{
1 => 10,
2 => 20,
_ => 30
}) + 5;
Console.WriteLine(res);
}
}
Результат выполнения кода:
35