.NET Core 3.x og .NET Standard 2.1 understøtter C# 8.0-syntaks, introducerer mange funktionelle funktioner og tilføjer nye funktionssyntaks: Readonly-medlemmer, standard interface-metoder, forbedringer af mønstermatchning, attributmønstre, Tuple-mønstre, positionsmønstre, switch-udtryk, brug af deklarationer, statiske lokale funktioner, asynkrone flows, indekser og intervaller, null merge-tildelinger osv. Denne artikel vil forklare de nye videnspunkter i C# 8.0.
Indeks og omfang
Følgende .NET-typer understøtter både indekser og intervaller: Array, String, Span og ReadOnlySpan. Listen understøtter indekser, men ikke intervaller
Eksempel 1: Fødselsdagen for den person, der har fået ID-nummeret
Eksempel 2: Få indholdet af den sidste del af strengen
Eksempel 3: Fjern det sidste stykke
Skift
udtryk
Attributtilstand
Tuple-mønster
Lokationstilstand
Nogle typer inkluderer en Dekonstrueringsmetode, der dekonstruerer dens egenskaber i diskrete variable. Hvis du har adgang til Deconstruct-metoden, kan du bruge Position Patterns til at tjekke egenskaberne for et objekt og bruge disse egenskaber til mønstre. Overvej følgende punktklasse, der indeholder en Deconstruct-metode til at skabe diskrete variable for X og Y:
Overvej også følgende opremsning af de forskellige positioner, der repræsenterer kvadranten:
Følgende metode bruger positionsmønstret til at udtrække værdierne af x og y. Den bruger derefter når-klausulen til at bestemme kvadranten for det punkt:
Null-merge tildelinger
Konstruktørudtryk
brug af sætning
Ubruge-deklarationen er en variabeldeklaration, der er forudgået af nøgleordet using (useing). Den instruerer compileren i at erklære variable, der skal håndteres i slutningen af det lukkede scope. For eksempel er koden til at skrive en tekstfil som følger:
I det forrige eksempel behandles filen, når de rette parenteser i metoden nås. Dette er slutningen af rækkevidden for den erklærede fil. Den foregående kode svarer til følgende kode ved brug af den klassiske ubruge-sætning:
I det forrige eksempel behandles filen, når de rette parenteser tilknyttet using statement nås. I begge tilfælde vil compileren generere et kald til Dispose(). Hvis udtrykket i ubruge-sætningen ikke er tilgængeligt, vil compileren generere en fejl.
Ressourcer
Hyperlink-login er synlig.
Hyperlink-login er synlig. |