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

в 11:24, , рубрики: .net, Build 2016, C#, windows, разработка, разработка под windows, разработка под windows phone, язык программирования, метки:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Записи

Автоматическое создание простых классов с необходимыми полями.
Новшества C# 7 - 11

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

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

Автор: Reeze

Источник

Поделиться новостью

* - обязательные к заполнению поля