Возможно, мы все еще ждем финальной версии C # 8.0, но разработчики уже обсуждают, что ляжет в основу C # 8.X. Список раскрывает некоторые подробности того, что будет отсутствовать в C # 8.0.
Планы по выпуску C # 8.X появились на GitHub как веха, несколько тревожная (и, вероятно, для предотвращения спекуляций о дате выпуска) со сроком исполнения 1 января 2089 года.
После выпуска C # 8.0 одним заголовком в C # 8.X будут записи данных. Предполагалось, что это будет функция C # 8.0, но она оказалась слишком сложной, чтобы ее можно было сократить. В новых планах даже не говорится, будет ли он в C # 8.1 или более поздней версии. Записи предназначены для упрощения создания классов объектов передачи данных (DTO), особенно тех, которые состоят только из свойств и полей, доступных только для чтения. Синтаксис записей создаст код для создания классов DTO.
Еще один элемент, запланированный для этих будущих выпусков, — это атрибут выражения вызывающего абонента. Это будет означать, что разработчики могут фиксировать выражения, переданные методу, и идея состоит в том, что это позволит улучшить сообщения об ошибках в API диагностического тестирования и уменьшить количество нажатий клавиш при автоматическом тестировании.
«Новые» выражения с типом цели — еще одно важное улучшение. Идея состоит в том, что такие выражения избавляют от необходимости иметь спецификацию типа для конструкторов, когда тип известен. Мотивация для этого состоит в том, чтобы разрешить инициализацию поля без дублирования типа.
Null-Enhanced Common Type — еще одно изменение, которое, как предполагает веха, будет добавлено в 8.X. Мы полагаем, что в некоторых обстоятельствах текущие результаты алгоритма общего типа противоречат интуиции, поэтому программисты должны добавить то, что кажется избыточное приведение к коду.
Запланированное изменение позволит избежать необходимости в явном приведении типов, если ваши типы значений и тернарные операторы допускают значение NULL.
Например, такое выражение, как условие? 1: null приведет к значению типа int? И выражению, например, condition? x: 1.0 где x имеет тип int? приведет к значению типа double ?.
Полный список предлагаемых улучшений можно увидеть в контрольном плане на GitHub.
Больше информации
Планы C # 8.X на GitHub
Статьи по Теме
C # 8, что нас ждет
Будущее C # раскрывается при сборке
Project Rider — кроссплатформенная среда разработки C #
C # присоединяется к составу PVS-Studio
Возможности C # 7
C # 7 — Что бы вы вставили?
Выпущена Visual Studio 2015 CTP 5
Массовый переход Microsoft на GitHub
.NET Core Подробности — достаточно ли?
Последние версии на C # 6 и VB 12
Возможности C # 6.0
C # Guru — Интервью с Эриком Липпертом
Игра за игрой: вопросы и ответы по C # со Скоттом Алленом и Джоном Скитом
В C # появился новый оператор — безопасная навигация
RyuJIT — компилятор JIT .NET нового поколения
Microsoft советует разработчикам C # изучать JavaScript !?
Команда Microsoft объясняет языковую стагнацию
Чтобы быть в курсе новых статей на I Programmer, подпишитесь на нашу еженедельную новостную рассылку, подпишитесь на RSS-канал и подпишитесь на нас в Twitter, Facebook или Linkedin.
Комментарии
Оставьте комментарий или просмотрите существующие комментарии с помощью Disqus
или отправьте свой комментарий по адресу: comments@i-programmer.info