Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю - Страница 74
- Предыдущая
- 74/642
- Следующая
Изменить размер шрифта:
74
default: // Стандартное действие break; }} Выполнение сопоставления с образцом в операторах switch (нововведение в версии 7.0, обновление в версии 9.0)
До выхода версии C# 7 сопоставляющие выражения в операторах
switchswitchcasecasecasereturnbreakgotoНа заметку! Если вы новичок в объектно-ориентированном программировании, тогда материал этого раздела может слегка сбивать с толку. Все прояснится в главе 6, когда мы вернемся к новым средствам сопоставления с образцом C# 7 в контексте базовых и производных классов. Пока вполне достаточно понимать, что появился мощный новый способ написания операторов
switchДобавьте еще один метод по имени
ExecutePatternMatchingSwitch()static void ExecutePatternMatchingSwitch(){ Console.WriteLine("1 [Integer (5)], 2 [String (\"Hi\")], 3 [Decimal (2.5)]"); Console.Write("Please choose an option: "); string userChoice = Console.ReadLine(); object choice; // Стандартный оператор switch, в котором применяется // сопоставление с образцом с константами switch (userChoice) { case "1": choice = 5; break; case "2": choice = "Hi"; break; case "3": choice = 2.5; break; default: choice = 5; break; } // Новый оператор switch, в котором применяется // сопоставление с образцом с типами switch (choice) { case int i: Console.WriteLine("Your choice is an integer."); // Выбрано целое число break; case string s: Console.WriteLine("Your choice is a string."); // Выбрана строка break; case decimal d: Console.WriteLine("Your choice is a decimal."); // Выбрано десятичное число break; default: Console.WriteLine("Your choice is something else"); // Выбрано что-то другое break; } Console.WriteLine();}В первом операторе
switchswitchobjectintstringdecimalcasecasedefault// Новый оператор switch, в котором применяется// сопоставление с образцом с типамиswitch (choice){ case int i: Console.WriteLine("Your choice is an integer {0}.",i); break; case string s: Console.WriteLine("Your choice is a string. {0}", s); break; case decimal d: Console.WriteLine("Your choice is a decimal. {0}", d); break; default: Console.WriteLine("Your choice is something else"); break;}Кроме оценки типа сопоставляющего выражения к операторам
casewhen
74
- Предыдущая
- 74/642
- Следующая
Перейти на страницу:
