В Microsoft опубликовали сведения о следующем масштабном релизе языка программирования C#, 8.0, выпуск которого запланирован на 2019 год одновременно с Net Core 3.0. Попробовать новшества можно в бета-версиях Visual Studio 2019.

Одна из новых особенностей — обнуляемые ссылочные типы, которые вводятся, чтобы улучшить качество кода и избежать исключений при попытке использования свойств или методов ссылочного типа со значением null. Также появится тип index для указания индекса элемента массива и range — для указания диапазона индексов.

Запланированы также упрощенный вариант оператора выбора switch, возможность не объявлять тип объекта, когда он уже задан контекстом, рекурсивные шаблоны и асинхронные потоки (async stream) — функция, позволяющая получать или передавать поток результатов в асинхронном режиме.

В Microsoft сообщили, что большинство новшеств C# 8.0 будут доступны во всех реализациях платформы .Net, однако есть и платформенно-зависимые. В частности, хотя асинхронные потоки, индексы и диапазоны введены в спецификацию .Net Standard 2.1, они будут поддерживаться в .Net Core 3.0, Xamarin, Unity и Mono, но не будут на платформе .Net Framework 4.8, для которой соответствие стандарту не обеспечено.