Последние новости от команды разработчиков компиляторов Microsoft заключаются в том, что, поскольку производительность и качество Roslyn более важны, пришло время вырезать новые функции из языков .NET.
Однако новости не так уж и плохи, и их не следует воспринимать как намек на неудачу или возврат. Более реалистично сократить количество функций, чем выпускать релиз, который не совсем работает. Мадс Торгерсен пишет:
«По мере того, как мы вступаем в финальную стадию нашего долгого поиска по обновлению возможностей C # и Visual Basic, нам пришлось принять несколько трудных решений в отношении набора языковых функций, которые войдут в следующую версию языков».
и объясняет причину:
«Основная цель — предоставить великолепную первую версию ценностного предложения Roslyn: глубокое понимание языка в среде IDE и доступное каждому благодаря надежному и всеобъемлющему API. Чтобы обеспечить это хорошо, нам нужно уменьшить наш аппетит к языковым функциям. немного.»
Основные сокращаемые характеристики:
Первичные конструкторы в C #
Выражения объявления в C #
Причина выбора этих двух функций заключается в том, что их поддержка в IDE и нижестоящих версиях компилятора не такая полная, как для других функций.
Первичный конструктор предоставляет другой способ инициализации объектов и может быть заменен подходящим явным конструктором. Если вы включите что-то похожее на конструктор как часть определения класса, например:
открытый класс Point (int x, int y) {}
затем для параметров создаются закрытые члены, которые автоматически назначаются при создании класса.
Выражения объявления — это просто результат возможности объявлять переменные внутри выражения. Например:
var y = (int x = 3) * x;
устанавливает y равным 9.
Хотя оба кажутся тривиальными, команда компиляторов рассматривает их как начало чего-то более сложного:
«Это также функции, которые мы рассматриваем как потенциальное начало более крупной истории в дальнейшем: первичные конструкторы могут вырасти, чтобы стать полноценной функцией записи, а выражения объявлений составили бы краеугольный камень средств сопоставления с образцом и деконструкции. Теперь все эти функции будут рассмотрены вместе для более позднего выпуска. В качестве приятного момента мы сможем разработать этот континуум целостным образом, а не шагами, которые могут ненадлежащим образом связать нам руки на более позднем этапе ».
С положительной стороны, вероятно, получится интерполяция строки, которая, как ожидалось, не войдет в следующую версию. Строковую интерполяцию можно использовать для включения переменных в строки:
«Привет \ {record.name) как дела?»
В целом приятно видеть, что C # и VB .NET с энтузиазмом развиваются. Жаль, что то же самое нельзя сказать о .NET в целом — WPF все еще выглядит как забытая технология.
Больше информации
Изменения в наборе языковых функций
Статус реализации языковой функции
Статьи по Теме
Возможности C # 6.0
В C # появился новый оператор — безопасная навигация
RyuJIT — компилятор JIT .NET нового поколения
Microsoft советует разработчикам C # изучать JavaScript !?
Команда Microsoft объясняет языковую стагнацию
Чтобы получать информацию о новых статьях на I Programmer, установите панель инструментов I Programmer, подпишитесь на RSS-канал, подпишитесь на нас в Twitter, Facebook, Google+ или Linkedin или подпишитесь на нашу еженедельную новостную рассылку.
Комментарии
Оставьте комментарий или просмотрите существующие комментарии с помощью Disqus
или отправьте свой комментарий по адресу: comments@i-programmer.info