С# 12.0 C# 2. switch-өрнектеріндегі сәйкестендіру: int[] сандар = { 1, 2, 3, 4 };
switch (сандар)
{
case [1, 2, 3, ..]:
Console.WriteLine("1,2,3 пен басталады");
break;
case []:
Console.WriteLine("Массив бос");
break;
default:
Console.WriteLine("Массив 1, 2, 3 сандарымен басталмайды");
break;
} break;
case []:
Console.WriteLine("Бос тізім");
break;
}
switch-өрнектері үлгі жаңартуларының арқасында жақсартылды. Енді кеңейтілген үлгілерді қолдана отырып, switch ішінде қуатты әрі икемді шарттарды қолдануға болады.
Мысалы, switch-тегі List Patterns қолданылуы:
3.Тернарлы оператордың жақсартылған мүмкіндіктері: Тернарлы оператордың ?: синтаксисі өзгермегенімен, қосылған үлгілер тернарлы өрнектерде икемділікті жақсарту үшін қолданылуы мүмкін. var адам = new Адам { Жас = 25 };
string санат = адам.Жас switch
{
> 18 => "Ересек",
_ => "Жасөспірім"
};
Console.WriteLine($"Адам {санат}.");
Қорытынды: • Шартты операторлардың негізгі конструкциялары (мысалы, if, else, тернарлы операторлар) өзгерген жоқ.
• Үлгімен сәйкестендіру едәуір кеңейтілді, бұл жаңа үлгілерді шартты өрнектерде пайдалануға мүмкіндік береді.
Осылайша, C# 12.0 шартты өрнектерде күрделі және көрнекі тексерулер үшін көбірек мүмкіндіктер ұсынады, бірақ негізгі конструкциялар сол қалпында қалады.
using System;
class Program
{
static void Main()
{
Console.Write("Введите время (от 0 до 23): ");
int x = int.Parse(Console.ReadLine());
if (x < 0 || x > 23)
{
Console.WriteLine("Некорректное время. Введите значение от 0 до 23.");
}
else if (x >= 6 && x < 12)
Console.WriteLine("Утро");
else if (x >= 12 && x < 18)
Console.WriteLine("День");
else if (x >= 18 && x < 22)
Console.WriteLine("Вечер");
else
Console.WriteLine("Ночь");
}
}