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


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



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

1. Бинарные литералы


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



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



2. Локальные функции


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



3. Кортежи (Tuples)


Внимание: доступно прямо сейчас, но с помощью другой конструкции (подробнее на MSDN)

В C# 6 можно использовать:
  Tuple<string,int> GiveMeATuple()
        {
            return Tuple.Create("New York", 7891957);
        }


В С# 7 создан более удобный синтаксис.



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



4. Новый вывод переменных в строке


Внимание: доступно прямо сейчас в Visual Studio 2015 и Update 1

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

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


5. Сопоставление с образцом (Pattern matching)


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



6. Условия и использование объектов в переключателях


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



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



7. Возвращение объектов по ссылке


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



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

Записи


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


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





К сожалению, не доступен сервер mySQL