.NET Core 3.x і .NET Standard 2.1 підтримують синтаксис C# 8.0, вводять багато функціональних функцій і додають новий синтаксис ознак: елементи лише для читання, методи інтерфейсу за замовчуванням, покращення відповідності патернів, шаблони атрибутів, шаблони кортежів, патерни позицій, вирази перемикача, використання оголошень, статичні локальні функції, асинхронні потоки, індекси та діапазони, нульові злиття тощо. У цій статті буде пояснено нові точки знань C# 8.0.
Індекс і сфера застосування
Наступні типи .NET підтримують як індекси, так і діапазони: Array, String, Span та ReadOnlySpan. Список підтримує індекси, але не діапазони
Приклад 1: День народження особи, яка отримала ідентифікаційний номер
Приклад 2: Отримати вміст останнього біта рядка
Приклад 3: Видалити останній біт
Перемикач
вираз
Режим атрибутів
Візерунок кортежа
Режим розташування
Деякі типи включають метод деконструкції, який розбирає властивості на дискретні змінні. Якщо у вас є доступ до методу Deconstruct, ви можете використати Position Patterns для перевірки властивостей об'єкта і використовувати ці властивості для шаблонів. Розглянемо наступний клас Point, який містить метод деконструкції для створення дискретних змінних для X і Y:
Також розглянемо наступний перелік різних позицій, що представляють квадрант:
Наступний метод використовує патерн положення для вилучення значень x і y. Далі використовується клаузу «when» для визначення квадранту для цієї точки:
Нульові призначення злиття
Конструкторні вирази
Використання оператора
Декларація using — це декларація змінної, перед якою іде ключове слово use. Він наказує компілятору оголосити змінні, які обробляються наприкінці закритої області області. Наприклад, код для написання текстового файлу виглядає так:
У попередньому прикладі файл обробляється, коли отримано правильні дужки методу. Це кінець діапазону оголошеного файлу. Попередній код еквівалентний наступному коду з використанням класичного оператора використання:
У попередньому прикладі файл обробляється, коли знаходяться правильні дужки, пов'язані з оператором use. В обох випадках компілятор генерує виклик Dispose(). Якщо вираз у операторі using недоступний, компілятор генерує помилку.
Ресурси
Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно. |