.NET Core 3.x en .NET Standard 2.1 ondersteunen C# 8.0-syntaxis, introduceren veel functionele functies en voegen nieuwe feature-syntaxis toe: Readonly members, standaard interfacemethoden, patroonverbeteringen, attribuutpatronen, Tuple-patronen, positiepatronen, switchexpressies, gebruik van declaraties, statische lokale functies, asynchrone stromen, indexen en bereiken, null merge-toewijzingen, enzovoort. Dit artikel zal de nieuwe kennispunten van C# 8.0 uitleggen.
Index en reikwijdte
De volgende .NET-typen ondersteunen zowel indexen als bereiken: Array, String, Span en ReadOnlySpan. Lijst ondersteunt indexen, maar geen bereiken
Voorbeeld 1: De verjaardag van de persoon die het ID-nummer heeft verkregen
Voorbeeld 2: Haal de inhoud van het laatste bit van de string op
Voorbeeld 3: Verwijder het laatste stukje
Schakel
uitdrukking
Attribuutmodus
Tuplepatroon
Locatiemodus
Sommige typen omvatten een Deconstruct-methode die de eigenschappen ontleedt in discrete variabelen. Als je toegang hebt tot de Deconstruct-methode, kun je Position Patterns gebruiken om de eigenschappen van een object te controleren en die eigenschappen gebruiken voor patronen. Beschouw de volgende puntklasse die een Deconstruct-methode bevat om discrete variabelen voor X en Y te creëren:
Overweeg ook de volgende opsomming van de verschillende posities die het kwadrant vertegenwoordigen:
De volgende methode gebruikt het positiepatroon om de waarden van x en y te extraheren. Vervolgens gebruikt het de whenn-clausule om het kwadrant voor dat punt te bepalen:
Null merge toewijzingen
Constructor-expressies
gebruik van de stelling
De using declaration is een variabele-verklaring voorafgegaan door het using keyword. Het instrueert de compiler om variabelen te declareren die aan het einde van de gesloten scope behandeld moeten worden. De code voor het schrijven van een tekstbestand is bijvoorbeeld als volgt:
In het vorige voorbeeld wordt het bestand verwerkt wanneer de juiste haakjes van de methode zijn bereikt. Dit is het einde van het bereik van het gedeclareerde bestand. De voorgaande code is equivalent aan de volgende code met de klassieke using statement:
In het vorige voorbeeld wordt het bestand verwerkt wanneer de juiste haakjes die bij de using statement horen, worden bereikt. In beide gevallen zal de compiler een aanroep genereren naar Dispose(). Als de expressie in de using statement niet beschikbaar is, zal de compiler een fout genereren.
Weg
De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar. |