/
aprogrammer
/
dotnet-docs
Обзор
Документация
Войти
/
aprogrammer
/
dotnet-docs
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
docs/csharp/language-reference/operators/snippets/patterns/RelationalPatterns.cs
45 строк
1 KB
Bill Wagner
Cover list patterns (#29154)
26 апр 2022, 18:47
Не верифицирован
26 апр 2022, 18:47
b181812
Код
Авторство
О чём код?
namespace Patterns; public static class RelationalPatterns { public static void Examples() { BasicExample(); WithCombinators(); } private static void BasicExample() { // <BasicExample> Console.WriteLine(Classify(13)); // output: Too high Console.WriteLine(Classify(double.NaN)); // output: Unknown Console.WriteLine(Classify(2.4)); // output: Acceptable static string Classify(double measurement) => measurement switch { < -4.0 => "Too low", > 10.0 => "Too high", double.NaN => "Unknown", _ => "Acceptable", }; // </BasicExample> } private static void WithCombinators() { // <WithCombinators> Console.WriteLine(GetCalendarSeason(new DateTime(2021, 3, 14))); // output: spring Console.WriteLine(GetCalendarSeason(new DateTime(2021, 7, 19))); // output: summer Console.WriteLine(GetCalendarSeason(new DateTime(2021, 2, 17))); // output: winter static string GetCalendarSeason(DateTime date) => date.Month switch { >= 3 and < 6 => "spring", >= 6 and < 9 => "summer", >= 9 and < 12 => "autumn", 12 or (>= 1 and < 3) => "winter", _ => throw new ArgumentOutOfRangeException(nameof(date), $"Date with unexpected month: {date.Month}."), }; // </WithCombinators> } }