Жанры книг
Мы в соц.сетях
ParaKnig📚 » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
<< На главную

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Читать онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 69 70 71 72 73 74 75 76 77 ... 642
Перейти на страницу:

    case &quot;VB&quot;:

      Console.WriteLine(&quot;VB: OOP, multithreading and more!&quot;);

      break;

    default:

      Console.WriteLine(&quot;Well...good luck with that!&quot;);

      break;

  }

}

Оператор switch также может применяться с перечислимым типом данных. Как будет показано в главе 4, ключевое слово enum языка C# позволяет определять специальный набор пар "имя-значение". В качестве иллюстрации рассмотрим вспомогательный метод SwitchOnEnumExample(), который выполняет проверку switch для перечисления System.DayOfWeek. Пример содержит ряд синтаксических конструкций, которые пока еще не рассматривались, но сосредоточьте внимание на самом использовании switch с типом enum; недостающие фрагменты будут прояснены в последующих главах.

static void SwitchOnEnumExample()

{

  Console.Write(&quot;Enter your favorite day of the week: &quot;);

              // Введите любимый день недели:

  DayOfWeek favDay;

  try

  {

    favDay = (DayOfWeek) Enum.Parse(typeof(DayOfWeek), Console.ReadLine());

  }

  catch (Exception)

  {

    Console.WriteLine(&quot;Bad input!&quot;);

                    // Недопустимое входное значение!

    return;

  }

  switch (favDay)

  {

  case DayOfWeek.Sunday:

      Console.WriteLine(&quot;Football!!&quot;);

                      // Футбол! !

      break;

    case DayOfWeek.Monday:

      Console.WriteLine(&quot;Another day, another dollar&quot;);

                      // Еще один день, еще один доллар.

      break;

    case DayOfWeek.Tuesday:

      Console.WriteLine(&quot;At least it is not Monday&quot;);

                      // Во всяком случае, не понедельник.

      break;

    case DayOfWeek.Wednesday:

      Console.WriteLine(&quot;A fine day.&quot;);

                      // Хороший денек.

      break;

    case DayOfWeek.Thursday:

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

      Console.WriteLine(&quot;Almost Friday...&quot;);

                      // Почти пятница...

      break;

    case DayOfWeek.Friday:

      Console.WriteLine(&quot;Yes, Friday rules!&quot;);

                      // Да, пятница рулит!

      break;

    case DayOfWeek.Saturday:

      Console.WriteLine(&quot;Great day indeed.&quot;);

                      // Действительно великолепный день.

      break;

  }

  Console.WriteLine();

}

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

case DayOfWeek.Saturday:

case DayOfWeek.Sunday:

  Console.WriteLine(&quot;It’s the weekend!&quot;);

  break;

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

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

static void SwitchWithGoto()

{

  var foo = 5;

  switch (foo)

  {

    case 1:

      // Делать что-то

      <b>goto case 2;</b>

    case 2:

      // Делать что-то другое

      break;

  case 3:

      // Еще одно действие

     <b> goto default;</b>

1 ... 69 70 71 72 73 74 75 76 77 ... 642
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю бесплатно.
Комментарии
Открыть боковую панель
Комментарии
Лариса
Лариса 11.03.2026 - 20:17
Странно,здесь имя девочки Аграфена,а на других сайтах я прослушала три книги этого цикла с именем Дарвина.Зачем менять имя и путать читателей? Опечатка- не Дарвина,  а  Дарина.
Григорий
Григорий 09.04.2025 - 22:24
Лучшая книга всех времен
Женя
Женя 02.04.2025 - 16:08
Любимая книга