Если вы начинаете знакомство с С# или хотите расширить свои познания, вам стоит изучить эти полезные особенности языка, которые помогут вам упростить код, избежать ошибок и сэкономить кучу времени.
async или await
Используйте возможности асинхронного программирования для того, чтобы разблокировать возможности одного потока, пока ожидается завершение другого. Например: если происходит медленный веб-запрос, то при синхронных программировании незанятый поток будет простаивать, пока веб-запрос не будет выполнен. Асинхронное программирование при помощи модификатора async позволяет избежать этого. Также полезным является использование async вместе с операторомawait, который приостанавливает выполнение потока, пока не произойдет ожидаемое событие.
Инициализаторы объектов, массивов и коллекций
Намного проще создавать экземпляры классов, массивы и коллекции при помощи специальных инициализаторов:
Лямбда-выражения, делегаты и замыкания
Они бывают необходимы в самых разнообразных случаях, но самую большую пользу они приносят при работе с LINQ. Узнайте о них побольше/
Оператор объединения со значением null
?? — довольно простой, но очень полезный оператор для определенных ситуаций. ??возвращает левый операнд, если он не NULL, иначе он вернет правый операнд:
Интерполированные строки $»{x}»
Новые возможности C# 6 позволяют вам интерполировать (разбивать) строки простым и элегантным путем:
Вы можете подставлять различные значения переменных в фигурные скобки в любой части строки, что делает инструмент весьма мощным и полезным.
Оператор безопасной навигации
Вот пример работы с оператором:
Выражение nameof
На первый взгляд использование nameof не является столь уж нужным, однако на самом же деле nameof весьма полезен, когда вы используете автоматические инструменты рефакторинга, вроде ReSharper, и тогда вам нужно обращаться к аргументу метода по его имени.
Но при использовании автоматического рефакторинга лучше реализовать тот же код следующим образом:
Больше информации.
Инициализаторы свойств
Инициализаторы свойств позволяют вам объявить начальное значение свойства:
Преимуществом является то, что значения свойств не являются неизменными, что придает некоторую гибкость вашему классу. Также примечательным является то, что инициализаторы свойств вполне реализуются внутри обычного конструктора.
Операторы as и is
Оператор is используется для того, чтобы определить принадлежность объекта к типу, если это так, то вернет true. Например, является ли объект Person экземпляром типаAdult или типа, производного от Adult:
Для проверки возможности преобразования типов используйте оператор as:
Если преобразование невозможно, то будет возвращено значение NULL.
Ключевое слово yield
Если используется ключевое слово yield в инструкции, то это означает, что обычный метод, метод доступа get или оператор, в котором оно встречается, является итератором. В следующем примере метод будет возвращать по порядку различные степени двойки по экспоненте: 2, 4, 8, 16, 32, 64, 128, 256.
yield позволяет избежать создания явного дополнительного класса, в котором содержится состояние перечисления. Отличный и простой способ создания последовательности объектов. Более подробно ознакомьтесь.

Печать
Email
ijy2fr
iriq5e
x7qn44
6prywc
6csjb7
9toc5n
b41tla
aoh8ah
nvzbr5
8qcll4
nil173
vsgmug
ltfivp
4ek1zs
hsy6dx
pbajay
2yoj6j
5aq5lk
xb72je
8xnd1f
sc68wf
a9io49