От: | Serginio1 | https://habrahabr.ru/users/serginio1/topics/ | |
Дата: | 01.04.20 20:51 | ||
Оценка: | 9 (1) |
Согласно этой записи в блоге язык действительно привязан к фреймворку:
Это означает, что типы, необходимые для использования этих функций, не будут доступны в .NET Framework 4.8. Аналогичным образом, реализации элементов интерфейса по умолчанию зависят от новых улучшений среды выполнения, и мы также не будем делать их в .NET Runtime 4.8.
По этой причине использование C# 8.0 поддерживается только на платформах, реализующих .NET Standard 2.1. Необходимость поддерживать стабильность среды выполнения уже более десяти лет не позволяет нам внедрять в нее новые языковые функции. Учитывая параллельную и открытую природу современных runtimes, мы чувствуем, что можем ответственно развивать их снова и делать языковой дизайн с учетом этого. Скотт объяснил в своем обновлении для .NET Core 3.0 и .NET Framework 4.8, что в будущем .NET Framework будет видеть меньше инноваций, вместо этого сосредоточившись на стабильности и надежности. Учитывая это, мы думаем, что лучше для него упустить некоторые языковые особенности, чем для того, чтобы никто их не получил.
Asyncstreams, индексы и диапазоны все полагаются на новые типы фреймворков, которые будут частью .NET Standard 2.1... .NET Core 3.0, а также Xamarin, Unity и Mono будут реализовывать .NET Standard 2.1, но .NET Framework 4.8-нет. Это означает, что типы, необходимые для использования этих функций, не будут доступны в .NET Framework 4.8.
Многие функции языка C# 8.0 имеют зависимости от платформы. Асинхронные потоки, индексаторы и диапазоны-все это зависит от новых типов фреймворков, которые будут частью .NET Standard 2.1. Как описывает иммо в своем посте, анонсирующем .NET Standard 2.1, .NET Core 3.0, а также Xamarin, Unity и Mono будут реализовывать .NET Standard 2.1, но .NET Framework 4.8 не будет. Это означает, что типы, необходимые для использования этих функций, не будут доступны в .NET Framework 4.8. Аналогичным образом, реализации элементов интерфейса по умолчанию зависят от новых улучшений среды выполнения, и мы не будем делать их в .NET Runtime 4.8.
По этой причине использование C# 8.0 поддерживается только на платформах, реализующих .NET Standard 2.1. Необходимость поддерживать стабильность среды выполнения уже более десяти лет не позволяет нам внедрять в нее новые языковые функции. Учитывая параллельную и открытую природу современных runtimes, мы чувствуем, что можем ответственно развивать их снова и делать языковой дизайн с учетом этого. Скотт объяснил в своем обновлении для .NET Core 3.0 и .NET Framework 4.8, что в будущем .NET Framework будет видеть меньше инноваций, вместо этого сосредоточившись на стабильности и надежности. Учитывая это, мы думаем, что лучше для него упустить некоторые языковые особенности, чем для того, чтобы никто их не получил.