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

  Console.WriteLine(string.Join(" ", smallArray));

  Console.WriteLine(string.Join(" ", largeArray));

}

Если вы не знакомы с ключевым словом ref, то переживать пока не стоит, т.к. оно будет подробно раскрыто в следующей главе. В первом примере возвращается ссылка на местоположение массива с условием, которая присваивается переменной refValue. С концептуальной точки зрения считайте ссылку указателем на позицию в массиве, а не на фактическое значение, которое в ней находится. Это позволяет изменять значение в позиции массива напрямую, изменяя значение, которое присвоено переменной refValue. Результатом установки значения переменной refValue в 0 будет изменение значений второго массива: 10,20,0,40,50. Во втором примере значение во второй позиции первого массива изменяется на 100, давая в результате 1,2,100,4,5.

<p id="AutBody_Root134">Использование логических операций</p>

Для выполнения более сложных проверок оператор if может также включать сложные выражения и содержать операторы else. Синтаксис идентичен своим аналогам в языках С (C++) и Java. Для построения сложных выражений язык C# предлагает вполне ожидаемый набор логических операций, которые описан в табл. 3.10.

На заметку! Операции && и || при необходимости поддерживают сокращенный путь выполнения. Другими словами, после того, как было определено, что сложное выражение должно дать в результате false, оставшиеся подвыражения вычисляться не будут. Если требуется, чтобы все выражения вычислялись безотносительно к чему-либо, тогда можно использовать операции & и |.

<p id="AutBody_Root135">Использование оператора switch</p>

Еще одной простой конструкцией C# для реализации выбора является оператор switch. Как и в остальных основанных на С языках, оператор switch позволяет организовать выполнение программы на основе заранее определенного набора вариантов. Например, в следующем коде для каждого из двух возможных вариантов выводится специфичное сообщение (блок default обрабатывает недопустимый выбор):

// Switch on a numerical value.

static void SwitchExample

{

  Console.WriteLine("1 [C#], 2 [VB]");

  Console.Write("Please pick your language preference: ");

                // Выберите предпочитаемый язык:

  string langChoice = Console.ReadLine;

  int n = int.Parse(langChoice);

  switch (n)

  {

    case 1:

      Console.WriteLine("Good choice, C# is a fine language.");

                   // Хороший выбор. C# - замечательный язык.

      break;

    case 2:

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

                   // VB: ООП, многопоточность и многое другое!

      break;

    default:

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

                   // Что ж... удачи с этим!

      break;

  }

}

На заметку! Язык C# требует, чтобы каждый блок case (включая default), который содержит исполняемые операторы, завершался оператором return, break или goto во избежание сквозного прохода по блокам.

Одна из замечательных особенностей оператора switch в C# связана с тем, что вдобавок к числовым значениям он позволяет оценивать данные string. На самом деле все версии C# способны оценивать типы данных char, string, bool, int, long и enum. В следующем разделе вы увидите, что в версии C# 7 появились дополнительные возможности. Вот модифицированная версия оператора switch, которая оценивает переменную типа string:

static void SwitchOnStringExample

{

  Console.WriteLine("C# or VB");

  Console.Write("Please pick your language preference: ");

  string langChoice = Console.ReadLine;

  switch (langChoice.ToUpper)

  {

    case "C#":

      Console.WriteLine("Good choice, C# is a fine language.");

      break;

    case "VB":

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

      break;

    default:

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

      break;

  }

}

Перейти на страницу:

Похожие книги

97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT