C#7 – Ссылочные значения

C# logoС# 7 разрешает использовать ключевое слово ref не только для параметров, но так же для возвращаемых значений и локальных переменных. Это позволяет передавать ссылки на структуры вместо самих структур.

Читать дальше...

С# 7– Числовые литералы

C# logoВ С# 7 появилась возможность использовать символ "_" в качестве разделителя внутри чисел. Это позволяет сделать большие числа удобными для чтения.

Читать дальше...

C# 7 – Локальные методы

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

Читать дальше...

C# 7 – Деконструкция

C# logoОдна из новых возможностей, появившихся в 7 версии C#, это деконструкция объекта. Она позволяет быстро разобрать его экземпляр на отдельные переменные, иногда скрывая даже сам факт существования объекта. Кортежи поддерживают ее изначально, а для своих классов ее можно легко добавить. Разберемся подробнее.

Читать дальше...

C# 7 – Сопоставление с обра��цом (pattern matсhing)

C# logoОдно из самых интересных нововведений С# 7 – это появление понятия образца (pattern) и операций сопоставления тестируемого значения с образцом (pattern matсhing). Их использование позволяет писать более компактный и, одновременно, удобный для чтения и понимания код. Разберемся подробнее с новой возможностью.

Читать дальше...

C# 7 – Выходные параметры методов

C# logo В C# 7 стало удобнее использовать методы, сигнатура которых содержит выходные параметры. Если раньше для них было необходимо заранее объявлять все переменные, которые будут использоваться в вызове, то с новыми возможностями языка код становится более компактным и понятным.

Читать дальше...

C# 7 – Кортежи (обновленный тип Tuple)

C# logo
Одно из улучшений C#7 коснулось работы с кортежами, которые представлены типом Tuple. Ранее их использование было не очень популярно по двум причинам:
  • относительная громоздкость конструкции;
  • низкая читабельность кода из-за стандартных, ни о чем не говорящих имен свойств Item1ItemN.
Зачастую вместо Tuple создавался отдельный класс, что увеличивало объем кода. В других случаях использовались выходные параметры (out), но это делало сами методы неудобными для использования. С# 7 устраняет указанные недостатки. Для примера возьмем код с Tuple и улучшим его:

Читать дальше...