.NET Core 3.x и .NET Standard 2.1 поддържат C# 8.0 синтаксис, въвеждат много функционални функции и добавят нов синтаксис на функции: членове само за четене, стандартни интерфейсни методи, подобрения за съвпадение на шаблони, шаблони на атрибути, шаблони на кортежи, позиционни шаблони, изрази на превключватели, използване на декларации, статични локални функции, асинхронни потоци, индекси и диапазони, присвояване на null merge и др. Тази статия ще обясни новите точки на знание в C# 8.0.
Индекс и обхват
Следните .NET типове поддържат както индекси, така и диапазони: Array, String, Span и ReadOnlySpan. Списъкът поддържа индекси, но не и диапазони
Пример 1: Рожден ден на лицето, което е получило идентификационния номер
Пример 2: Вземете съдържанието на последния бит от низа
Пример 3: Премахване на последния бит
Превключвател
изразяване
Режим на атрибути
Модел на кортежи
Режим на местоположение
Някои видове включват метод на деконструкция, който деконструира свойствата си на дискретни променливи. Ако имате достъп до метода Deconstruct, можете да използвате позиционни шаблони, за да проверите свойствата на обект и да използвате тези свойства за шаблони. Разгледайте следния клас Point, който съдържа метод Deconstruct за създаване на дискретни променливи за X и Y:
Също така разгледайте следното изброяване на различните позиции, които представляват квадранта:
Следващият метод използва позиционния модел, за да извлече стойностите на x и y. След това използва клаузата "when", за да определи квадранта за тази точка:
Присвояване на null merge
Конструкторни изрази
Използване на твърдение
Декларацията за използване е декларация на променлива, предшествана от ключовата дума използване. Той инструктира компилатора да обяви променливи, които да се обработват в края на затворения обхват. Например, кодът за писане на текстов файл е следният:
В предишния пример файлът се обработва, когато се достигнат правилните скоби на метода. Това е краят на обхвата на декларирания файл. Предходният код е еквивалентен на следващия код, използвайки класическото използване на оператора:
В предишния пример файлът се обработва, когато се достигнат правилните скоби, свързани с използващата позиция. В двата случая компилаторът ще генерира извикване към Dispose(). Ако изразът в изявлението using не е наличен, компилаторът ще генерира грешка.
Ресурси
Входът към хиперлинк е видим.
Входът към хиперлинк е видим. |