Новшества C# 7

На втором дне конференции Build 2016 Dustin Campbell и Mads Torgersen рассказали про новые конструкции в языке C#.
Оригинал презентации на английском можно посмотреть здесь.

8c1aa2466a104889bd955aae7c56068a.png

В этой статье собран полный обзор новых конструкций языка, некоторые из них уже доступны в Visual Studio 2015 Update 2.


На разогрев были представлены бинарные литералы.

b9058a83cead4b00bc6b45783bd75c1c.png

Можно отделять нули произвольным количество подчёркиваний.

a77e84e79abb41519d562463aede361b.png

Хотите, структурировать ваш код в стиле JavaScript? Получайте возможность писать локальные функции!

959f46a8be8441bf847e87b7b6d42477.png

Возвращайте из функции что хотите и когда хотите.

17642af95e624b79b215dd867e9e2453.png

Можно давать названия каждой переменной (по умолчанию они называются Item1, Item2).
Переменные в кортежах изменяемы.

a8100ff3e66345ea8949f5ef1535523b.png

Выше можно увидеть поддержку конструкции, которая уже доступна в Visual Studio 2015 Update 2.
Теперь можно вставлять переменные прямо в строку.

Console.WriteLine($"Sum: {t.sum}, Count: {t.count}");

Теперь можно использовать разнообразные средства для сопоставления.
Пример ниже показывает объявление переменной в блоке if.

19bb0fb46c4f45c597bdaa040bc092f6.png

Маленькая революция для разработчиков. Теперь switch почти ничем не ограничен.
Можно использовать сопоставления.

3f9d477da2c448c0b5f743abfec40f62.png

Можно определить условия.

e45dbb7ed055493da21f50f8f67a6cc8.png

Нужно получить ссылку на объект? Проще некуда.

54fa2c169a614b6f976429c17e1aae37.png

Обсуждаются варианты добавления следующих функций в перспективе.

Записи


Автоматическое создание простых классов с необходимыми полями.
769dc1057d634d40b5a251494ef687b7.png

Создание неизменяемых объектов


7c63a20e81ca42478293df15638506e5.png

© Habrahabr.ru