Компания Microsoft в своем последнем информационном сообщении о планируемом выпуске языка C# 13 делает акцент на таких возможностях, как разрешение перегрузок, когда разработчики могут указывать несколько перегрузок params при создании метода, и частичные свойства, аналогичные частичным методам.
Компания опубликовала свой последний блог о C# 13 9 июля. Вероятно, C# 13 будет окончательно доработан в ноябре, вместе с последним обновлением планируемой платформы разработки программного обеспечения .NET 9. Рассказывая о разрешении перегрузок, Microsoft сообщила, что при создании метода разработчики могут предоставлять несколько перегрузок params. Это позволяет сократить выделение, что повышает производительность. Множественные перегрузки могут как повысить производительность, так и добавить удобства. Авторам библиотек рекомендуется наделять все перегрузки одинаковой семантикой, чтобы вызывающие пользователи не задумывались о том, какая именно перегрузка используется. Частичные свойства, тем временем, описываются как аналоги частичных методов. Разработчикам генераторов исходных текстов будет проще создавать API с естественным восприятием.
Также в релизе C# 13 уточнены правила определения естественного типа, чтобы рассматривать кандидатов по области видимости и отсеивать кандидатов, не имеющих шансов на успех. Обновление этих правил означает уменьшение количества ошибок компилятора при работе с группами методов. Релиз, позволяющий использовать ref struct, также добавляет новый способ указания возможностей для параметров общего типа. По умолчанию параметры не могут быть ref struct. C# 13 позволяет разработчикам указать, что тип может быть ref struct, и применить соответствующие правила. Если другие общие ограничения ограничивают набор типов, которые могут быть использованы в качестве параметра типа, новая спецификация расширяет допустимые типы. Это снимает, а не добавляет ограничение.
Еще одно улучшение в C# 13: методы async могут объявлять локальные переменные типа ref или локальные переменные типа ref struct. Эти переменные не могут быть сохранены за границей await или yield return. Таким образом, C# 13 позволяет использовать небезопасный контекст в методах-итераторах.
C# 13 также расширяет функцию params, на которую ранее ссылалась Microsoft. В C# 13 функция params будет расширена для работы с любым типом, который может быть создан с помощью выражения коллекции. Это добавляет гибкости независимо от того, пишут ли разработчики метод или вызывают его. Начиная с C# 13, параметры params могут быть любого типа, который поддерживается выражениями коллекций. В других частях C# 13 язык упрощает использование нового типа System.Threading.Lock, появившегося в .NET 9. Этот тип предназначен для взаимного исключения, что может быть более эффективным, чем блокировка произвольного экземпляра System.Object. В C# 13 также появилась новая последовательность экранирования для символа ESCAPE или ESC. Новая последовательность особенно удобна при взаимодействии с терминалами, использующими аварийные коды VT100/ANSI для System.Console.
Понравилась новость? Тогда не забудь оставить свой комментарий.
А так же, добавь наш сайт в закладки (нажми Ctrl+D), не теряй нас.
Комментарии