Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
static void ExportToExcel(List<Car> carsInStock){<b> // Загрузить Excel и затем создать новую пустую рабочую книгу.</b> Excel.Application excelApp = new Excel.Application();<b> // Сделать пользовательский интерфейс Excel видимым на рабочем столе.</b> excelApp.Visible = true;...}После создания пустого рабочего листа добавляются три столбца, именованные в соответствии со свойствами класса
CarList<Car>Inventory.xlsxЕсли вы запустите приложение, то сможете затем открыть файл
Inventory.xlsxbinDebugnet5.0Хотя не похоже, что в предыдущем коде использовались какие-либо динамические данные, имейте в виду, что среда DLR оказала значительную помощь. Без среды DLR код пришлось записывать примерно так:
static void ExportToExcelManual(List<Car> 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, "A"]).Value2 = "Make"; ((Excel.Range)excelApp.Cells[1, "B"]).Value2 = "Color"; ((Excel.Range)excelApp.Cells[1, "C"]).Value2 = "Pet Name"; int row = 1; foreach (Car c in carsInStock) { row++; // Потребуется привести каждый объект Object к Range // и затем обратиться к низкоуровневому свойству Value2! ((Excel.Range)workSheet.Cells[row, "A"]).Value2 = c.Make; ((Excel.Range)workSheet.Cells[row, "B"]).Value2 = c.Color; ((Excel.Range)workSheet.Cells[row, "C"]).Value2 = c.PetName; } // Потребуется вызвать метод get _ Range() // с указанием всех пропущенных аргументов! excelApp.get_Range("A1", Type.Missing).AutoFormat( Excel.XlRangeAutoFormat.xlRangeAutoFormatClassic2, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); // Потребуется указать все пропущенные необязательные аргументы! workSheet.SaveAs( $@"{Environment.CurrentDirectory}InventoryManual.xlsx", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); excelApp.Quit(); Console.WriteLine("The InventoryManual.xslx file has been saved to your app folder"); // Файл Inventory.xslx сохранен в папке приложения.}На этом рассмотрение ключевого слова
dynamicВ то время как о среде DLR можно еще рассказать многое, основное внимание в главе было сосредоточено на темах, практичных и полезных при повседневном программировании. Если вы хотите изучить расширенные средства DLR, такие как интеграция с языками написания сценариев, тогда обратитесь в документацию по .NET Core (начните с поиска темы "Dynamic Language Runtime Overview" ("Обзор исполняющей среды динамического языка")).
Резюме
Ключевое слово
dynamicС применением динамических данных и среды DLR сложные задачи программирования на C# могут быть радикально упрощены, особенно действие по включению библиотек СОМ в состав приложений .NET Core. Было показано, что это предлагает несколько дальнейших упрощений взаимодействия с СОМ (которые не имеют отношения к динамическим данным), в том числе встраивание данных взаимодействия СОМ в разрабатываемые приложения, необязательные и именованные аргументы.
Хотя все рассмотренные средства определенно могут упростить код, всегда помните о том, что динамические данные существенно снижают безопасность к типам в коде C# и открывают возможности для возникновения ошибок времени выполнения. Тщательно взвешивайте все "за" и "против" использования динамических данных в своих проектах C# и надлежащим образом тестируйте их!
Глава 19
Язык CIL и роль динамических сборок
При построении полномасштабного приложения .NET Core вы почти наверняка будете использовать C# (или другой управляемый язык, такой как Visual Basic) из-за присущей ему продуктивности и простоты применения. Однако в начале книги было показано, что роль управляемого компилятора заключается в трансляции файлов кода
*.csilasm.ехеПохожие книги на "Язык программирования C#9 и платформа .NET5", Троелсен Эндрю
Троелсен Эндрю читать все книги автора по порядку
Троелсен Эндрю - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mir-knigi.info.