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

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

На нашем литературном портале можно бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю, Троелсен Эндрю . Жанр: Базы данных. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале litmir.org.
Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Название: Язык программирования C#9 и платформа .NET5
Дата добавления: 22 август 2024
Количество просмотров: 245
Читать онлайн

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту readbookfedya@gmail.com для удаления материала

Язык программирования C#9 и платформа .NET5 читать книгу онлайн

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

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

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

Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

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

static void ExportToExcel(List<Car> carsInStock)

{

<b>  // Загрузить Excel и затем создать новую пустую рабочую книгу.</b>

  Excel.Application excelApp = new Excel.Application();

<b>  // Сделать пользовательский интерфейс Excel видимым на рабочем столе.</b>

  excelApp.Visible = true;

...

}

После создания пустого рабочего листа добавляются три столбца, именованные в соответствии со свойствами класса Car. Затем ячейки наполняются данными List&lt;Car&gt;, и файл сохраняется с жестко закодированным именем Inventory.xlsx.

Если вы запустите приложение, то сможете затем открыть файл Inventory.xlsx, который будет сохранен в подкаталоге binDebugnet5.0 вашего проекта.

Хотя не похоже, что в предыдущем коде использовались какие-либо динамические данные, имейте в виду, что среда DLR оказала значительную помощь. Без среды DLR код пришлось записывать примерно так:

static void ExportToExcelManual(List&lt;Car&gt; carsInStock)

{

  Excel.Application excelApp = new Excel.Application();

  // Потребуется пометить пропущенные параметры!

  excelApp.Workbooks.Add(Type.Missing);

  // Потребуется привести объект Object к _Worksheet!

  Excel._Worksheet workSheet =

    (Excel._Worksheet)excelApp.ActiveSheet;

  // Потребуется привести каждый объект Object к Range

  // и затем обратиться к низкоуровневому свойству Value2!

  ((Excel.Range)excelApp.Cells[1, &quot;A&quot;]).Value2 = &quot;Make&quot;;

  ((Excel.Range)excelApp.Cells[1, &quot;B&quot;]).Value2 = &quot;Color&quot;;

  ((Excel.Range)excelApp.Cells[1, &quot;C&quot;]).Value2 = &quot;Pet Name&quot;;

  int row = 1;

  foreach (Car c in carsInStock)

  {

    row++;

    // Потребуется привести каждый объект Object к Range

    // и затем обратиться к низкоуровневому свойству Value2!

    ((Excel.Range)workSheet.Cells[row, &quot;A&quot;]).Value2 = c.Make;

    ((Excel.Range)workSheet.Cells[row, &quot;B&quot;]).Value2 = c.Color;

    ((Excel.Range)workSheet.Cells[row, &quot;C&quot;]).Value2 = c.PetName;

  }

  // Потребуется вызвать метод get _ Range()

  // с указанием всех пропущенных аргументов!

  excelApp.get_Range(&quot;A1&quot;, Type.Missing).AutoFormat(

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

    Excel.XlRangeAutoFormat.xlRangeAutoFormatClassic2,

    Type.Missing, Type.Missing, Type.Missing,

  Type.Missing, Type.Missing, Type.Missing);

  // Потребуется указать все пропущенные необязательные аргументы!

  workSheet.SaveAs(

    $@&quot;{Environment.CurrentDirectory}InventoryManual.xlsx&quot;,

    Type.Missing, Type.Missing, Type.Missing,

    Type.Missing, Type.Missing, Type.Missing,

    Type.Missing, Type.Missing, Type.Missing);

  excelApp.Quit();

  Console.WriteLine(&quot;The InventoryManual.xslx file has been saved to your app folder&quot;);

                  // Файл Inventory.xslx сохранен в папке приложения.

}

На этом рассмотрение ключевого слова dynamic языка C# и среды DLR завершено. Вы увидели, насколько данные средства способны упростить сложные задачи программирования, и (что возможно даже важнее) уяснили сопутствующие компромиссы. Делая выбор в пользу динамических данных, вы теряете изрядную часть безопасности типов, и ваша кодовая база предрасположена к намного большему числу ошибок времени выполнения.

В то время как о среде DLR можно еще рассказать многое, основное внимание в главе было сосредоточено на темах, практичных и полезных при повседневном программировании. Если вы хотите изучить расширенные средства DLR, такие как интеграция с языками написания сценариев, тогда обратитесь в документацию по .NET Core (начните с поиска темы "Dynamic Language Runtime Overview" ("Обзор исполняющей среды динамического языка")).

Резюме

Ключевое слово dynamic позволяет определять данные, идентичность которых не известна вплоть до времени выполнения. При обработке исполняющей средой динамического языка (DLR) автоматически создаваемое "дерево выражения" передается подходящему связывателю динамического языка, а полезная нагрузка будет распакована и отправлена правильному члену объекта.

С применением динамических данных и среды DLR сложные задачи программирования на C# могут быть радикально упрощены, особенно действие по включению библиотек СОМ в состав приложений .NET Core. Было показано, что это предлагает несколько дальнейших упрощений взаимодействия с СОМ (которые не имеют отношения к динамическим данным), в том числе встраивание данных взаимодействия СОМ в разрабатываемые приложения, необязательные и именованные аргументы.

Хотя все рассмотренные средства определенно могут упростить код, всегда помните о том, что динамические данные существенно снижают безопасность к типам в коде C# и открывают возможности для возникновения ошибок времени выполнения. Тщательно взвешивайте все "за" и "против" использования динамических данных в своих проектах C# и надлежащим образом тестируйте их!

Глава 19

Язык CIL и роль динамических сборок

При построении полномасштабного приложения .NET Core вы почти наверняка будете использовать C# (или другой управляемый язык, такой как Visual Basic) из-за присущей ему продуктивности и простоты применения. Однако в начале книги было показано, что роль управляемого компилятора заключается в трансляции файлов кода *.cs в код CIL, метаданные типов и манифест сборки. Как выяснилось, CIL представляет собой полноценный язык программирования .NET Core, который имеет собственный синтаксис, семантику и компилятор (ilasm.ехе).

Перейти на страницу:
Комментариев (0)