.NET Core 3.x in .NET Standard 2.1 podpirata sintakso C# 8.0, uvajata številne funkcionalne funkcije in dodajata novo sintakso funkcij: člani samo za branje, privzete metode vmesnika, izboljšave za ujemanje vzorcev, vzorci atributov, vzorci tuplov, vzorci položajev, izrazi za stikala, uporaba deklaracij, statičnih lokalnih funkcij, asinhronih tokov, indeksov in razponov, dodelitve ničelne združitve itd. Ta članek bo pojasnil nove točke znanja C# 8.0.
Indeks in obseg
Naslednji .NET tipi podpirajo tako indekse kot razpore: Array, String, Span in ReadOnlySpan. Seznam podpira indekse, ne pa razpone
Primer 1: Rojstni dan osebe, ki je pridobila identifikacijsko številko
Primer 2: Pridobimo vsebino zadnjega bita niza
Primer 3: Odstrani zadnji bit
Preklop
izraz
Način atributov
Vzorec toric
Način lokacije
Nekatere vrste vključujejo metodo Deconstruct, ki svoje lastnosti razgradi na diskretne spremenljivke. Če imate dostop do metode Deconstruct, lahko uporabite Position Patterns za preverjanje lastnosti objekta in te lastnosti uporabite za vzorce. Razmislimo o naslednjem razredu Point, ki vsebuje metodo Deconstruct za ustvarjanje diskretnih spremenljivk za X in Y:
Prav tako upoštevajte naslednjo enumeracijo različnih položajev, ki predstavljajo kvadrant:
Naslednja metoda uporablja vzorec položaja za izvleček vrednosti x in y. Nato uporabi klavzulo when za določitev kvadranta za to točko:
Ničelne združitve
Konstruktorski izrazi
Uporaba stavka
Deklaracija uporabe je deklaracija spremenljivke, ki ji predhaja ključna beseda za uporabo. Prevajalniku naroči, naj na koncu zaprtega obsega razglasi spremenljivke, ki jih je treba obravnavati. Na primer, koda za pisanje besedilne datoteke je naslednja:
V prejšnjem primeru se datoteka obdela, ko so dosežene desne oklepaje metode. To je konec območja deklarirane datoteke. Prejšnja koda je ekvivalentna naslednji kodi, ki uporablja klasično uporabo ukaza:
V prejšnjem primeru se datoteka obdela, ko pridemo do desnih oklepajev, povezanih z ukazom upotrebe. V obeh primerih bo prevajalnik generiral klic na Dispose(). Če izraz v ukazu using ni na voljo, bo prevajalnik ustvaril napako.
Sredstva
Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna. |