Язык программирования C#9 и платформа .NET5
В приведенном примере присутствует много непонятного, начиная с лямбда-операции (
) и заканчивая отбрасыванием (=>). Все это будет раскрыто позже в книге и данный пример окончательно прояснится._Перед тем, как завершить обсуждение темы выражений
, давайте рассмотрим еще один пример, в котором вовлечены кортежи. Кортежи подробно раскрываются в главе 4, а пока считайте кортеж простой конструкцией, которая содержит более одного значения и определяется посредством круглых скобок, подобно следующему кортежу, содержащему значенияswitchиstring:int(string, int)В показанном ниже примере два значения, передаваемые методу
, преобразуются в кортеж, после чего выражениеRockPapeScissors()вычисляет два значения в единственном выражении. Такой прием позволяет сравнивать в оператореswitchболее одного выражения:switch//Switch expression with Tuplesstatic string RockPaperScissors(string first, string second){return (first, second) switch{("rock", "paper") => "Paper wins.",("rock", "scissors") => "Rock wins.",("paper", "rock") => "Paper wins.",("paper", "scissors") => "Scissors wins.",("scissors", "rock") => "Rock wins.",("scissors", "paper") => "Scissors wins.",(_, _) => "Tie.",};}Чтобы вызвать метод
, добавьте в методRockPaperScissors()следующие строки кода:Main()Console.WriteLine(RockPaperScissors("paper","rock"));Console.WriteLine(RockPaperScissors("scissors","rock"));Мы еще вернемся к этому примеру в главе 4, где будут представлены кортежи.
Резюме
Цель настоящей главы заключалась в демонстрации многочисленных ключевых аспектов языка программирования С#. Мы исследовали привычные конструкции, которые могут быть задействованы при построении любого приложения. После ознакомления с ролью объекта приложения вы узнали о том, что каждая исполняемая программа на C# должна иметь тип, определяющий метод
, либо явно, либо с использованием операторов верхнего уровня. Данный метод служит точкой входа в программу.Main()Затем были подробно описаны встроенные типы данных C# и разъяснено, что применяемые для их представления ключевые слова (например,
) на самом деле являются сокращенными обозначениями полноценных типов из пространства именint(Systemв данном случае). С учетом этого каждый тип данных C# имеет набор встроенных членов. Кроме того, обсуждалась роль расширения и сужения, а также ключевых словSystem.Int32иchecked.uncheckedВ завершение главы рассматривалась роль неявной типизации с использованием ключевого слова
. Как было отмечено, неявная типизация наиболее полезна при работе с моделью программирования LINQ. Наконец, мы бегло взглянули на различные конструкции С#, предназначенные для организации циклов и принятия решений.varТеперь, когда вы понимаете некоторые базовые механизмы, в главе 4 завершится исследование основных средств языка. После этого вы будете хорошо подготовлены к изучению объектно-ориентированных возможностей С#, которое начнется в главе 5.
Глава 4
Главные конструкции программирования на С#: часть 2
В настоящей главе завершается обзор основных аспектов языка программирования С#, который был начат в главе 3. Первым делом мы рассмотрим детали манипулирования массивами с использованием синтаксиса C# и продемонстрируем функциональность, содержащуюся внутри связанного класса
.System.ArrayДалее мы выясним различные подробности, касающиеся построения методов, за счет исследования ключевых слов
,outиref. В ходе дела мы объясним роль необязательных и именованных параметров. Обсуждение темы методов завершится перегрузкой методов.paramsЗатем будет показано, как создавать типы перечислений и структур, включая детальное исследование отличий между типами значений и ссылочными типами. В конце главы объясняется роль типов данных, допускающих
, и связанных с ними операций.nullПосле освоения материала главы вы можете смело переходить к изучению объектно-ориентированных возможностей языка С#, рассмотрение которых начнется в главе 5.
Понятие массивов C#
Как вам уже наверняка известно, массив — это набор элементов данных, для доступа к которым применяется числовой индекс. Выражаясь более конкретно, массив представляет собой набор расположенных рядом элементов данных одного и того же типа (массив элементов
, массив элементовint, массив элементовstringи т.д.). Объявлять, заполнять и получать доступ к массиву в языке C# довольно просто. В целях иллюстрации создайте новый проект консольного приложения по имениSportsCar, содержащий вспомогательный методFunWithArrays:SimpleArrays()Console.WriteLine("***** Fun with Arrays *****");SimpleArrays();Console.ReadLine();static void SimpleArrays(){Console.WriteLine("=> Simple Array Creation.");// Создать и заполнить массив из 3 целых чисел.