10 фич в C#, о которых вы определённо должны узнать и начать их использовать
87К открытий88К показов
Если вы только начали изучение C# или же решили расширить свои знания, мы нашли для вас 10 фич, знание которых позволит вам избежать ошибок, писать более понятный код и сохранить кучу времени.
1. async / await
Использование паттернов async / await позволяет разблокировать UI / текущий поток во время выполнения блочных операторов. Паттерны async / await позволяют коду продолжить выполнение, даже если что-то блокирует его выполнение (например, веб-запрос).
2. Инициализаторы объектов / массивов / коллекций
Данный пример может быть особенно полезен в юнит-тестировании, но в других случаях лучше использовать конструкторы.
3. Лямбды, предикаты, делегаты и замыкания
Эти фичи просто незаменимы во многих случаях: например, при использовании LINQ. Поэтому рекомендуем вам убедиться, что вы действительно понимаете, когда и как их использовать.
4. ?? (Оператор объединения с NULL)
x ?? y
— возвращает x
, если значение отличается от null
; в противном случае возвращает y
.
Может быть несколько операторов ??:
?? также может быть использован для перевода типов null
в не null
:
5. $”{x}” (Интерполяция строк) — C# 6
Фича в C# 6 позволяет эффективно и элегантно собирать строки:
6. ?.(определяет null) — C# 6
x?.y
— доступ к членам, определяемый условием null
. Возвращает значение null
, если левый операнд имеет значение null
.
Больше никаких NullReferenceExceptions!
7. Выражение nameof — C# 6
Может показаться, что выражение nameof не особо полезно, но это не так. При использовании автоматических инструментов рефакторинга (например, ReSharper) иногда может потребоваться обратиться к аргументу метода по его имени:
Вот, как это должно быть:
8. Инициализаторы свойств (property) — C# 6
Инициализаторы свойств позволяют задавать начальные значения для свойств:
Польза их использования заключается в том, что вы не можете объявить setter, тем самым делая свойства неизменяемыми. Инициализаторы свойств хорошо работают в связке с синтаксисом первичного конструктора в C# 6.
9. Операторы as и is
Is — совместимость типов. Возвращает значение true, если вычисленный левый операнд может быть приведен к типу, указанному в правом операнде (статический тип).
As — преобразование типов. Возвращает левый операнд, приведенный к типу, заданному правым операндом (статический тип), но as
возвращает null
, где (T)x
вызывает исключение.
10. Ключевое слово yield
Ключевое слово yield
позволяет заполнить интерфейс IEnumerable объектами (items). Следующий пример вернет все степени двойки от 2 до 2 в степени 8 (то есть 2, 4, 8, 16, 32, 128, 256):
В правильных руках yield
— очень мощная вещь. Оно позволяет с легкостью генерировать последовательность объектов, то есть системе не придется перечислять всю коллекцию целиком — это может быть сделано по требованию.
87К открытий88К показов