вторник, 30 августа 2016 г.

Новые возможности C# 7.0


На прошлой неделе Microsoft приоткрыла некоторые детали о новшествах в C# 7.0 – плановом обновлении объектно-ориентированного языка для платформы .NET, направленные на улучшение производительности и упрощение синтакиса. 


Несмотря на то, что C# 7.0 еще находится в процессе разработки, большинство возможностей описанных Microsoft уже доступны в Visual Studio 15 Preview 4, увидевшей свет на прошлой неделе, объявил Мэдс Торгерсен – программный менеджер Microsoft по C#. “Пожалуй самые важные изменения связаны с кортежами (tuples), корторые упрощаю можественные результаты, и паттерн матчинг, для упрощения кода, условного по форме данных” Microsoft представила эти возможности раньше.
 

Для поддержки кортежей, синтаксис описания позволяет разделить кортеж или оние значение на части и присвоить эти значния новым переменным. C# 7 кроме того позволяет объявлять переменные в точке, где они передаются в качестве аргумента.

Подстановочные функции (wildcards), новшества неподтвержденные в C# 7.0 позволят разработчикам игнорировать out параметры которые они не будут использовать.  Выражение switch в версии 7.0 позволит разработчикам использовать любой тип, а не только примитивные. Также появится поддержка паттернов в выражениях case, которые позволят задавать дополнительные выражения в них.


Улучшения работы с литералами позволяют использовать символ подчеркивания как разделитель цифр внутри числовых литералов. “Вы можете разместить их где угодно внутри числа, для того что бы улучшить читаемость. Они не имеют никакого влияния на значние числа” – заявил Торгерсен. “Также, в C# 7.0 добавлены бинарные литералы, и вы можете укзаать непосредственно битовый паттерн, без необходимости переводить его в шестнадцатиразрядную нотацию”


Обобщенный типы async возврата добавлены в новую версию, таким образом число типов которые могут быть возвращены из аsync метода увеличилось. Выражения с телом в качества члена, также были улучшены. “Выражения с телом в качества метода или свойства были добавлены еще в C# 6.0 однако они не могли использоваться в качестве любого вида члена. C# 7.0 позволяет делать подобным образом аксесоры, контсрукторы и финализаторы.” Дополнительно, локальные функции в C# 7.0 позволяют разрабюотчикам использовать функции-помощники и объявлять их внутри тела других функций.