.NET Core 3.x и .NET Standard 2.1 поддерживают синтаксис C# 8.0, вводят множество функциональных функций и добавляют новый синтаксис функций: элементы только для чтения, стандартные методы интерфейса, улучшения сопоставления шаблонов, шаблоны атрибутов, шаблоны кортежей, шаблоны позиций, выражения переключателей, использование объявлений, статические локальные функции, асинхронные потоки, индексы и диапазоны, назначение null merge и т.д. В этой статье будут объяснены новые точки знаний C# 8.0.
Индекс и область применения
Следующие типы .NET поддерживают как индексы, так и диапазоны: Array, String, Span и ReadOnlySpan. Список поддерживает индексы, но не диапазоны
Пример 1: дата рождения человека, получившего ID
Пример 2: Получите содержимое последнего бита строки
Пример 3: Удалить последний бит
Switch
выражение
Режим атрибутов
Узор кортежа
Режим локации
Некоторые типы включают метод деконструкции, который разбивает свойства на дискретные переменные. Если у вас есть доступ к методу Deconstruct, вы можете использовать Position Patterns для проверки свойств объекта и использовать эти свойства для паттернов. Рассмотрим следующий класс Point, содержащий метод Deconstruct для создания дискретных переменных для X и Y:
Также рассмотрим следующий перечисление различных позиций, представляющих квадрант:
Следующий метод использует паттерн позиции для извлечения значений x и y. Затем используется клауза «when» для определения квадранта для этой точки:
Нулевое присваивание слияния
Конструкторные выражения
Использование оператора
Объявление using — это объявление переменной, предшествующее ключевым словом use. Он инструктует компилятора объявить переменные, которые будут обрабатываться в конце замкнутого диапазона. Например, код для написания текстового файла выглядит следующим образом:
В предыдущем примере файл обрабатывается, когда достигнут нужные скобки метода. Это конец диапазона объявленного файла. Предыдущий код эквивалентен следующему коду с использованием классического оператора использования:
В предыдущем примере файл обрабатывается, когда достигнуты правильные скобки, связанные с оператором использования. В обоих случаях компилятор генерирует вызов Dispose(). Если выражение в операторе using недоступно, компилятор генерирует ошибку.
Ресурсы
Вход по гиперссылке виден.
Вход по гиперссылке виден. |