C# 9 и F# 5 выпущены вместе с .NET 5


На этой неделе Microsoft выпустила C# 9 и F# 5 как часть релиза .NET 5. Visual Basic также включен в SDK версии 5.0. Он не содержит языковых изменений, но имеет улучшения для поддержки Visual Basic Application Framework на .NET Core.

Улучшения в C# 9 направлены на повышение простоты программ, наряду с поддержкой классов, ориентированных на данные. F# 5 добавляет поддержку интерполированных строк и объявления открытых типов.

C# 9 и F# 5 выпущены вместе с .NET 5

Разработчики говорят, что генераторы исходных текстов C# – это важная новая функция компилятора C#, хотя технически они не являются частью C# 9, поскольку в нем нет синтаксиса языка. Генераторы синтаксиса – это новая функция компилятора C#, которая означает, что разработчики C# могут инспектировать пользовательский код и генерировать новые исходные файлы C#, которые могут быть добавлены в компиляцию. Это делается с помощью нового типа компонента Команда .NET ожидает более широкого использования генераторов исходных текстов в продукте .NET в .NET 6.0 и последующих версиях.

В C# 9 также добавлена поддержка новых шаблонов, включая шаблоны простых типов, которые позволяют избежать необходимости объявления идентификатора при совпадении типа, и реляционные шаблоны, соответствующие реляционным операторам <, <= и так далее. Также была добавлена поддержка логических шаблонов, что означает, что вы можете комбинировать шаблоны с логическими операторами and, or и not, написанными как слова, чтобы избежать путаницы с операторами, используемыми в выражениях.

Еще одно дополнение к C# 9 – поддержка класса record. Команда разработчиков говорит, что хотя C# всегда хорошо работал для классического объектно-ориентированного программирования, где объект имеет сильную идентичность и инкапсулирует изменяемое состояние, наличие записей полезно, если вы хотите, чтобы весь объект был неизменяемым и вел себя как значение. Запись – это все еще класс, но ключевое слово record наделяет его несколькими дополнительными свойствами, подобными значению. Вообще говоря, записи определяются по их содержимому, а не по их идентичности.

F# также был обновлен в новом выпуске. Команда F# говорит, что F# 5 знаменует собой начало новой эры развития F#, ориентированной на интерактивное программирование. В практическом плане в новом выпуске добавлена поддержка ссылок на пакеты в скриптах F# с синтаксисом #r “nuget:…”, а также поддержка блокнотов Jupyter, nteract и VSCode.

Интерполяция строк также наконец-то была добавлена в F#. Команда говорит, что интерполированные строки F# довольно похожи на интерполированные строки C# или JavaScript, поскольку они позволяют писать код в “дырах” внутри строкового литерала. Они также позволяют выполнять типовые интерполяции, подобно функции sprintf, чтобы обеспечить соответствие выражения внутри интерполированного контекста определенному типу. Еще одна очень востребованная функция F# 5 – nameof, которая разрешает символ, для которого она используется, и выдает его имя в исходном тексте F#.

Оба языка являются частью .NET SDK.


Добавить комментарий