Поле класса с перечислением в C#
Поле может иметь тип enum так же,
как int или string: у каждого
объекта хранится одна из констант перечисления.
При создании объекта полю задают начальное значение
или меняют при необходимости. Запишем тип Color
и класс Banner:
enum Color { Red, Green, Blue }
class Banner {
public Color Theme = Color.Blue;
}
Создадим объект и выведем метку цвета
через switch:
Banner banner = new Banner();
switch (banner.Theme) {
case Color.Red:
Console.WriteLine("red");
break;
case Color.Green:
Console.WriteLine("green");
break;
case Color.Blue:
Console.WriteLine("blue");
break;
}
Тот же тип подходит для поля структуры. Запишем структуру заказа со статусом:
Order order = new Order();
order.Status = OrderStatus.Paid;
enum OrderStatus { NewOrder, Paid, Shipped, Done }
struct Order {
public OrderStatus Status;
}
Выведем метку для Paid:
switch (order.Status) {
case OrderStatus.NewOrder:
Console.WriteLine("created");
break;
case OrderStatus.Paid:
Console.WriteLine("paid");
break;
case OrderStatus.Shipped:
Console.WriteLine("on way");
break;
case OrderStatus.Done:
Console.WriteLine("finished");
break;
}
Объявите enum Channel с константами
Email, Sms и Push.
Сделайте класс Message с полем Channel
и полем id типа long.
Создайте объект с каналом Push и id
7, выведите имя канала и id
в одной строке через пробел.
Объявите enum Role с константами
Guest, User и Admin.
Сделайте структуру Account с полем Role.
Создайте объект с ролью Admin и выведите
числовой код роли: Guest - 0,
User - 1, Admin - 2.
Объявите enum OrderStatus с константами
NewOrder, Paid, Shipped
и Done.
Дана переменная:
OrderStatus status = OrderStatus.Paid;
Для переменной
status выведите соответствующую
текстовую метку: NewOrder - "created",
Paid - "paid",
Shipped - "on way",
Done - "finished".