10 фич в C#, о которых вы определённо должны узнать и начать их использовать
88К открытий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 — очень мощная вещь. Оно позволяет с легкостью генерировать последовательность объектов, то есть системе не придется перечислять всю коллекцию целиком — это может быть сделано по требованию.
88К открытий88К показов



