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

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

Книгу Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

178 0 18:04, 26-08-2023
Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен
26 август 2023

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

В 10-м издании книги описаны новейшие возможности языка C# 9 и .NET 5 вместе с подробным "закулисным" обсуждением, призванным расширить навыки критического мышления разработчиков, когда речь идет об их ремесле. Книга охватывает ASP.NET Core, Entity Framework Core и многое другое наряду с последними обновлениями унифицированной платформы .NET, начиная с улучшений показателей производительности настольных приложений Windows в .NET 5 и обновления инструментария XAML и заканчивая расширенным рассмотрением файлов данных и способов обработки данных. Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

    1 ... 47 48 49 50 51 52 53 54 55 ... 407
    Перейти на страницу:
    but one...");

      Array.Clear(gothicBands, 1, 2);

      for (int i = 0; i < gothicBands.Length; i++)

      {

        // Вывести имя.

        Console.Write(gothicBands[i] + ", ");

      }

      Console.WriteLine();

    }

    Вызов метода SystemArrayFunctionality() дает в результате следующий вывод:

    => Working with System.Array.

    -> Here is the array:

    Tones on Tail, Bauhaus, Sisters of Mercy,

    -> The reversed array

    Sisters of Mercy, Bauhaus, Tones on Tail,

    -> Cleared out all but one...

    Sisters of Mercy,,,

    Обратите внимание, что многие члены класса System.Array определены как статические и потому вызываются на уровне класса (примерами могут служить методы Array.Sort() и Array.Reverse()). Методам подобного рода передается массив, подлежащий обработке. Другие члены System.Array (такие как свойство Length) действуют на уровне объекта, поэтому могут вызываться прямо на типе массива.

    Использование индексов и диапазонов (нововведение в версии 8.0)

    Для упрощения работы с последовательностями (включая массивы) в версии C# 8 были введены два новых типа и две новых операции, применяемые при работе с массивами:

    • System.Index представляет индекс в последовательности;

    • System.Range представляет поддиапазон индексов;

    • операция конца (^) указывает, что индекс отсчитывается относительно конца последовательности;

    • операция диапазона (...) устанавливает в своих операндах начало и конец диапазона.

    На заметку! Индексы и диапазоны можно использовать с массивами, строками, Span<T> и ReadOnlySpan<T>.

    Как вы уже видели, индексация массивов начинается с нуля (0). Конец последовательности — это длина  последовательности минус единица. Показанный выше цикл for, который выводил содержимое массива gothicBands, можно записать по-другому:

    for (int i = 0; i < gothicBands.Length; i++)

    {

      Index idx = i;

      // Вывести имя.

      Console.Write(gothicBands[idx] + ", ");

    }

    Индекс с операцией конца позволяет указывать количество позиций, которые необходимо отсчитать от конца последовательности, начиная с длины. Не забывайте, что последний элемент в последовательности находится в позиции, на единицу меньше длины последовательности, поэтому ^0 приведет к ошибке. В следующем коде элементы массива выводятся в обратном порядке:

    for (int i = 1; i <= gothicBands.Length; i++)

    {

      Index idx = ^i;

      // Вывести имя.

      Console.Write(gothicBands[idx] + ", ");

    }

    Операция диапазона определяет начальный и конечный индексы и обеспечивает доступ к подпоследовательности внутри списка. Начало диапазона является включающим, а конец — исключающим. Например, чтобы извлечь первые два элемента массива, создайте диапазон от 0 (позиция первого элемента) до 2 (на единицу больше желаемой позиции):

    foreach (var itm in gothicBands[0..2])

    {

      // Вывести имя.

      Console.Write(itm + ", ");

    }

    Console.WriteLine("n");

    Диапазоны можно передавать последовательности также с использованием нового типа данных Range, как показано ниже:

    Range r = 0..2; //the end of the range is exclusive

    foreach (var itm in gothicBands[r])

    {

      // Вывести имя.

      Console.Write(itm + ", ");

    }

    Console.WriteLine("n");

    Диапазоны можно определять с применением целых чисел или переменных типа Index. Тот же самый результат будет получен посредством следующего кода:

    Index idx1 = 0;

    Index idx2 = 2;

    Range r = idx1..idx2; // Конец диапазона является исключающим.

    foreach (var itm in gothicBands[r])

    {

      // Вывести имя.

      Console.Write(itm + ", ");

    }

    Console.WriteLine("n");

    Если не указано начало диапазона, тогда используется начало последовательности. Если не указан конец диапазона, тогда применяется длина диапазона. Ошибка не возникает, т.к. конец диапазона является исключающим. В предыдущем примере с массивом, содержащим три элемента, все диапазоны представляют одно и то же подмножество:

    gothicBands[..]

    gothicBands[0..^0]

    gothicBands[0..3]

    Понятие методов

    Давайте займемся исследованием деталей определения методов. Методы определяются модификатором доступа и возвращаемым типом (или void, если ничего не возвращается) и могут принимать параметры или не принимать их. Метод, который возвращает значение вызывающему коду, обычно называется функцией, а метод, не возвращающий значение, как правило, называют собственно методом.

    На заметку! Модификаторы доступа для методов (и классов) раскрываются в главе 5. Параметры методов рассматриваются в следующем разделе.

    До настоящего момента в книге каждый из рассматриваемых методов следовал такому базовому формату:

    // Вспомните, что статические методы могут вызываться

    // напрямую без создания экземпляра класса,

    class Program

    {

      // static воэвращаемыйТип ИмяМетода(список параметров)

      // { /* Реализация */ }

      static int Add(int x, int y)

      {

        return x + y;

      }

    }

    В нескольких последующих главах вы увидите, что методы могут быть реализованы внутри области видимости классов, структур или интерфейсов (нововведение версии C# 8).

    Члены, сжатые до выражений

    Вы уже знаете о простых методах, возвращающих значения, вроде метода Add(). В версии C# 6 появились члены, сжатые до выражений, которые сокращают синтаксис написания однострочных методов. Например, вот как можно переписать метод Add():

    static int Add(int x, int y) => x + y;

    Обычно такой прием называют "синтаксическим сахаром", имея в виду, что генерируемый код IL не изменяется по сравнению с первоначальной версией метода. Он является всего лишь другим способом написания метода. Одни находят его более легким для восприятия, другие — нет, так что выбор стиля зависит от ваших персональных предпочтений (или предпочтений команды разработчиков).

    На заметку! Не пугайтесь операции =>. Это лямбда-операция, которая подробно рассматривается в главе 12, где также объясняется, каким образом работают члены, сжатые до выражений. Пока просто считайте их сокращением при написании однострочных операторов.

    Локальные функции (нововведение в версии 7.0, обновление в версии 9.0)

    В версии C# 7.0 появилась возможность создавать методы внутри методов, которые официально называются локальными функциями. Локальная функция является функцией, объявленной внутри другой функции, она обязана быть закрытой, в версии C# 8.0 может быть статической (как демонстрируется в следующем разделе) и не поддерживает перегрузку. Локальные функции допускают вложение: внутри одной локальной функции может быть

    1 ... 47 48 49 50 51 52 53 54 55 ... 407
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

    Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


    Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

    • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
    • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
    • 3. Просьба отказаться от нецензурной лексики.
    • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

    Надеемся на Ваше понимание и благоразумие. С уважением, администратор LoveRead.info.


    Установить VPN и читай слушай бесплатно

    Новые отзывы

    1. Людмила Хофман Людмила Хофман10 июнь 22:13 У меня перевернулся мир после прочтения ваших книг! Так приятно и чисто на душе, ведь по сути неважно кто с кем , а только любовь... Долгая игра - Рейчел Рид
    2. Анна Анна08 июнь 11:28 Спасибо за новую историю жизни и любви на сайте,прочитала с удовольствием .... Давай поженимся - Юлия Резник
    3. Елена Елена08 июнь 11:13 Прочла несколько романов этого, без сомнения, талантливого автора. Впечатление прекрасное, но хотелось бы когда-нибудь прочесть... Предатель. Ты врал мне годами - Арина Арская
    Все комметарии
    Новинки бесплатной онлайн библиотеки