Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Страница 33
С версией C# 7 связаны два младших выпуска, которые добавили следующие средства.
• Возможность иметь асинхронный метод
Main()
• Новый литерал
default
• Устранение проблемы при сопоставлении с образцом, которая препятствовала использованию обобщений в этом новом средстве сопоставления с образцом.
• Подобно анонимным методам имена кортежей могут выводиться из проекции, которая их создает.
• Приемы для написания безопасного и эффективного кода, сочетание синтаксических улучшений, которые позволяют работать с типами значений, применяя ссылочную семантику.
• За именованными аргументами могут следовать позиционные аргументы.
• Числовые литералы теперь могут иметь ведущие символы подчеркивания перед любыми печатаемыми цифрами.
• Модификатор доступа
private protected
• Результатом условного выражения (
?:
Кроме того, в этом издании книги к заголовкам разделов добавляются указания "(нововведение в версии 7.x)" и "(обновление в версии 7.x)", чтобы облегчить поиск изменений в языке по сравнению с предыдущей версией. Буква "х" означает младшую версию C# 7, такую как 7.1.
В версии C# 8, ставшей доступной 23 сентября 2019 года в рамках .NET Core 3.0, были введены дополнительные средства для упрощения кодовой базы и добавлен ряд более значимых средств (вроде кортежей, а также ссылочных локальных переменных и возвращаемых значений), которые разработчики просили включить в спецификацию языка в течение довольно долгого времени.
Версия C# 8 имеет два младших выпуска, которые добавили следующие средства:
• члены, допускающие только чтение, для структур:
• стандартные члены интерфейса;
• улучшения сопоставления с образцом;
• использование объявлений;
• статические локальные функции;
• освобождаемые ссылочные структуры;
• ссылочные типы, допускающие значение
null
• асинхронные потоки;
• индексы и диапазоны;
• присваивание с объединением с
null
• неуправляемые сконструированные типы;
• применение
stackalloc
• усовершенствование интерполированных дословных строк.
Новые средства в C# 8 обозначаются как "(нововведение в версии 8)" в заголовках разделов, которые им посвящены, а обновленные средства помечаются как "(обновление в версии 8.0)".
Новые средства в C# 9
В версию C# 9, выпущенную 10 ноября 2020 года в составе .NET 5, добавлены следующие средства:
• записи;
• средства доступа только для инициализации;
• операторы верхнего уровня;
• улучшения сопоставления с образцом;
• улучшения производительности для взаимодействия;
• средства "подгонки и доводки";
• поддержка для генераторов кода.
Новые средства в C# 9 обозначаются как "(нововведение в версии 9.0)" в заголовках разделов, которые им посвящены, а обновленные средства помечаются как "(обновление в версии 9.0)" .
Сравнение управляемого и неуправляемого кода
Важно отметить, что язык C# может применяться только для построения программного обеспечения, которое функционирует под управлением исполняющей среды .NET Core (вы никогда не будете использовать C# для создания COM-сервера или неуправляемого приложения в стиле C/C++). Выражаясь официально, для обозначения кода, ориентированного на исполняющую среду .NET Core, используется термин управляемый код. Двоичный модуль, который содержит управляемый код, называется сборкой (сборки более подробно рассматриваются далее в главе). И наоборот, код, который не может напрямую обслуживаться исполняющей средой .NET Core, называется неуправляемым кодом.
Как упоминалось ранее, инфраструктура .NET Core способна функционировать в средах разнообразных операционных систем. Таким образом, вполне вероятно создавать приложение C# на машине Windows с применением Visual Studio и запускать его под управлением iOS с использованием исполняющей среды .NET Core. Кроме того, приложение C# можно построить на машине Linux с помощью Visual Studio Code и запускать его на машине Windows. С помощью Visual Studio для Mac на компьютере Мае можно разрабатывать приложения .NET Core, предназначенные для выполнения под управлением Windows, macOS или Linux.
Программа C# по-прежнему может иметь доступ к неуправляемому коду, но тогда она привяжет вас к специфической цели разработки и развертывания.
Использование дополнительных языков программирования, ориентированных на .NET Core
Имейте в виду, что C# — не единственный язык, который может применяться для построения приложений .NET Core. В целом приложения .NET Core могут строиться с помощью С#, Visual Basic и F#, которые представляют собой три языка, напрямую поддерживаемые Microsoft.
Обзор сборок .NET
Независимо от того, какой язык .NET Core выбран для программирования, важно понимать, что хотя двоичные модули .NET Core имеют такое же файловое расширение, как и неуправляемые двоичные компоненты Windows (
*.dll
На заметку! Язык IL также известен как промежуточный язык Microsoft (Microsoft Intermediate Language — MSIL) или общий промежуточный язык (Common Intermediate Language — CIL). Таким образом, при чтении литературы по .NET/.NET Core не забывайте о том, что IL, MSIL и CIL описывают в точности одну и ту же концепцию. В настоящей книге при ссылке на этот низкоуровневый набор инструкций будет применяться аббревиатура CIL.
Когда файл
*.dll
Во-первых, в отличие от сборок .NET Framework, которые могут быть файлами
*.dll
*.ехе
.dll
dotnet<имя_сборки>.dll
dotnet.ехе
<<i>имя_сборки</i>>.ехе
dotnet<<i>имя_сборки</i>>.ехе
*.ехе