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

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

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

177 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 ... 15 16 17 18 19 20 21 22 23 ... 407
    Перейти на страницу:
    Метаданные .NET Core всегда присутствуют внутри сборки и автоматически генерируются компилятором языка.

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

    Роль языка CIL

    Теперь давайте займемся детальными исследованиями кода CIL, метаданных типов и манифеста сборки. Язык CIL находится выше любого набора инструкций, специфичных для конкретной платформы. Например, приведенный далее код C# моделирует простой калькулятор. Не углубляясь пока в подробности синтаксиса, обратите внимание на формат метода Add() в классе Calc.

    // Calc.cs

    using System;

    namespace CalculatorExamples

    {

      // Этот класс содержит точку входа приложения.

      class Program

      {

        static void Main(string[] args)

        {

          Calc c = new Calc();

          int ans = c.Add(10, 84);

          Console.WriteLine("10 + 84 is {0}.", ans);

          // Ожидать нажатия пользователем клавиши <Enter>

          // перед завершением работы.

          Console.ReadLine();

        }

      }

      // Калькулятор С#.

      class Calc

      {

        public int Add(int addendl, int addend2)

        {

          return addendl + addend2;

        }

      }

    }

    Результатом компиляции такого кода будет файл *.dll сборки, который содержит манифест, инструкции CIL и метаданные, описывающие каждый аспект классов Calc и Program.

    На заметку! В главе 2 будет показано, как использовать для компиляции файлов кода графические среды интегрированной разработки (integrated development environment — IDE), такие как Visual Studio Community.

    Например, если вы выведете код IL из полученной сборки с помощью ildasm.exe (рассматривается чуть позже в главе), то обнаружите, что метод Add() был представлен в CIL следующим образом:

    .method public hidebysig instance int32

        Add(int32 addendl, int32 addend2) cil managed

    {

      // Code size    9(0x9)

      // Размер кода  9(0x9)

      .maxstack 2

      .locals init (int32 V_0)

      IL_0000: nop

      IL_0001: ldarg.1

      IL_0002: ldarg.2

      IL_0003: add

      IL_0004: stloc.0

      IL_0005: br.s  IL_0007

      IL_0007: ldloc.0

      IL 0008: ret

    } // end of method Calc::Add  конец метода Calc::Add

    Не беспокойтесь, если результирующий код CIL этого метода выглядит непонятным — в главе 19 будут описаны базовые аспекты языка программирования CIL. Важно понимать, что компилятор C# выпускает код CIL, а не инструкции, специфичные для платформы.

    Теперь вспомните, что сказанное справедливо для всех компиляторов .NET. В целях иллюстрации создадим то же самое приложение на языке Visual Basic вместо С#:

    ' Calc.vb

    Namespace CalculatorExample

      Module Program

        ' Этот класс содержит точку входа приложения.

        Sub Main(args As String())

          Dim c As New Calc

          Dim ans As Integer = c.Add(10, 84)

          Console.WriteLine("10 + 84 is {0}", ans)

          ' Ожидать нажатия пользователем клавиши <Enter>

          ' перед завершением работы.

          Console.ReadLine()

        End Sub

      End Module

      ' Калькулятор VB.NET.

      Class Calc

        Public Function Add(ByVal addendl As Integer,

                            ByVal addend2 As Integer) As Integer

          Return addendl + addend2

        End Function

      End Class

    End Namespace

    Просмотрев код CIL такого метода Add(), можно найти похожие инструкции (слегка скорректированные компилятором Visual Basic):

    .method public hidebysig instance int32

        Add(int32 addendl, int32 addend2) cil managed

    {

      // Code size    9(0x9)

      // Размер кода  9(0x9)

      .maxstack 2

      .locals init (int32 V_0)

      IL_0000: nop

      IL_0001: ldarg.1

      IL_0002: ldarg.2

      IL_0003: add

      IL_0004: stloc.0

      IL_0005: br.s  IL_0007

      IL_0007: ldloc.0

      IL 0008: ret

    } // end of method Calc::Add

      // конец метода Calc::Add

    В качестве финального примера ниже представлена та же самая простая программа Calc, разработанная на F# (еще одном языке .NET Core):

    // Узнайте больше о языке F# на веб-сайте http://fsharp.org

    // Calc.fs

    open System

    module Calc =

      let add addendl addend2 =

        addendl + addend2

    [<EntryPoint>]

    let main argv =

      let ans = Calc.add 10 84

      printfn "10 + 84 is %d" ans

      Console.ReadLine()

      0

    Если вы просмотрите код CIL для метода Add(), то снова найдете похожие инструкции (слегка скорректированные компилятором F#).

    .method public static int32 Add(int32 addendl,

    int32 addend2) cil managed

    {

      .custom instance void [FSharp.Core]Microsoft.FSharp.Core.

    CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00

    00 01 00 00 00 01 00 00 00 00 00 )

      // Code size 4 (0x4)

      // Размер кода 4 (0x4)

      .maxstack 8

      IL_0000: ldarg.0

      IL_0001: ldarg.l

      IL_0002: add

      IL_0003: ret

    } // end of method Calc::'add

      // конец метода Calc::'add' 

    Преимущества языка CIL

    В этот момент вас может интересовать, какую выгоду приносит компиляция исходного кода в CIL, а не напрямую в специфичный набор инструкций. Одним из преимуществ является языковая интеграция. Как вы уже видели, все компиляторы .NET Core выпускают практически идентичные инструкции CIL. Следовательно, все языки способны взаимодействовать в рамках четко определенной "двоичной арены".

    Более того, учитывая независимость от платформы языка CIL, сама инфраструктура .NET Core не зависит от платформы и обеспечивает те же самые преимущества, к которым так привыкли разработчики на Java (например, единую кодовую базу, функционирующую в средах многочисленных операционных

    1 ... 15 16 17 18 19 20 21 22 23 ... 407
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

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


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

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

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


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

    Новые отзывы

    1. Лариса Лариса04 июнь 12:43 Да, просто до слез похоже на сериал ,,Даррел,,... Смерть в райском уголке - Эмили Салливан
    2. Stmara Stmara02 июнь 22:44 Приятная история, чтобы скоротать вечер. Любимая книга из последних "Любовь со смертью", также очень понравилась -"Суженная... Сердце космического дракона - Ольга Вадимовна Гусейнова
    3. Alex Alex01 июнь 17:12 💩💩💩🖕🖕🖕🖕🖕🖕🖕... Игровой момент II - Александр Андреевич Бодров
    Все комметарии
    Новинки бесплатной онлайн библиотеки