Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csOpEnSw 121 of 163 menu
◀ ▶

Разбор вариантов перечисления в C#

Конструкция switch принимает переменную типа enum и сравнивает ее с константами в метках case. В C# непустая ветка должна явно завершаться, например через return или break. Скомпилировать «провал» в следующий case с кодом нельзя - компилятор это запрещает.

В примерах ниже каждая ветка сразу возвращает результат через return, поэтому break не нужен: выход идёт из всей функции. Пустые метки case подряд допустимы - тогда несколько констант ведут к одному общему блоку с кодом.

В case пишут полное имя константы, как Color.Red. Запишем функцию, которая по дню недели возвращает короткую метку, и выведем результат для пятницы:

string Label(Day day) { switch (day) { case Day.Monday: return "start"; case Day.Tuesday: return "mid"; case Day.Wednesday: return "mid"; case Day.Thursday: return "mid"; case Day.Friday: return "end"; case Day.Saturday: return "rest"; case Day.Sunday: return "rest"; } return ""; } Console.WriteLine(Label(Day.Friday)); enum Day { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }

Несколько констант можно обработать одной веткой, если перечислить их через запятую в одной метке case. Запишем проверку выходного дня и выведем ответ для воскресенья:

bool IsWeekend(Day day) { switch (day) { case Day.Saturday: case Day.Sunday: return true; case Day.Monday: case Day.Tuesday: case Day.Wednesday: case Day.Thursday: case Day.Friday: return false; } return false; } Console.WriteLine(IsWeekend(Day.Sunday)); enum Day { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }

Объявите enum Season с константами Spring, Summer, Autumn и Winter. Напишите функцию IsWarm с параметром Season: для Summer и Spring верните true, для остальных - false. Вызовите с Season.Winter и выведите результат.

Объявите enum Weekday с семью днями недели. Напишите функцию IsWeekend с параметром Weekday: для Saturday и Sunday верните true, для остальных дней - false. Выведите результат для Weekday.Saturday.

Объявите enum Role с константами Guest, User и Admin. Дана переменная:

Role role = Role.User;

Для переменной role запишите в code число: Guest - 0, User - 1, Admin - 2. Выведите code.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить