Andrey on .NET | Все записи отмеченные как 'C#'

С# 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 и улучшим его:

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

“Незаметное” добавление кэширования

C# logoДостаточно распространена ситуация, когда приложение очень часто запрашивает определенные данные. Например, профиль текущего пользователя. Это может приводить к заметному падению производительности из-за частых обращений к базе данных. В качестве решения можно использовать кэш, который может быть как локальным, так и использовать более оптимальные для данного случая системы хранения данных. Рассмотрим как добавить его незаметно для бизнес-логики приложения при использовании Dependency Injection.

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

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

C# logo20 июля состоялся выпуск Visual Studio 2015 в которую входит C# 6. Давайте посмотрим на возможности, которые предоставляет разработчикам новая версия этого языка программирования.

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

Юнит-тесты, internals и Moq

Наверняка многие использовали модификатор internal, чтобы скрыть внутренние объекты от других сборок. Рассмотрим одну интересую особенность использования таких классов в проектах с юнит-тестами.

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