Programmering

Nye funktioner i C # 7

C # 7 tilføjer mange nye funktioner med specielt fokus på enkelhed i kodning og forbedret ydeevne. Det giver meget fokus på dataforbrug, kodeforenkling og ydeevne, og det er designet til at eliminere smerten ved at skulle skrive ekstra kode på flere måder end en.

Her er et hurtigt blik på, hvad der er nyt og forbedret i C # 7.

  • Støtte til lokale funktioner
  • Forbedret support til Tuple-typer
  • Optagetyper
  • Mønster matching
  • Ikke-ophævelige referencetyper
  • Uforanderlige typer
  • Bedre support til ude variabler

Bedre support til ude variabler

Evnen til at erklære en ud-variabel lige ved brugen er en fantastisk ny funktion i C # 7. Her er et eksempel på et kodestykke, der illustrerer dette.

offentlig tomrum Gem (Produkt p)

{

p.SaveData (ud int x);

// Almindelig kode

}

Et godt sted at bruge variablen er inde i din prøveblok. Brug bare en Boolean out-variabel, hvor en returtype af true angiver, at operationen er en succes, ellers falsk.

Mønster matching

C # 7 giver fremragende understøttelse af mønstermatchning. Du kan bruge mønstermatchning på enhver datatype, også på brugerdefinerede datatyper. Desuden kan du drage fordel af mønstermatchning for at udtrække værdier fra et udtryk. Her er et kodestykke, der illustrerer mønstermatchning på arbejdspladsen!

object obj = "Dette er en demonstration af mønstermatch i C # 7";

hvis (obj er streng str)

{

Console.WriteLine (str);

}

Støtte til lokale funktioner

Du har muligvis ofte brug for en hjælperfunktion, der kun skal bruges én gang - måske kun i en metode. Du kan nu erklære sådanne funktioner i en anden funktion. Sådanne funktioner er kendt som lokale funktioner. I det væsentlige giver supporten til lokale funktioner dig mulighed for at erklære metoder inden for et blokområde. Skønt det faktum, at dette var muligt at bruge Func og Action-typer med anonyme metoder i de tidligere versioner af C # -sproget, var der få udfordringer. De understøttede ikke generiske, params og ref og out parametre.

Bedre støtte til tupler

En Tuple er en midlertidig gruppering af værdier. Det ligner en POCO-klasse, men en der oprettes i farten. Den største fordel ved at bruge en Tuple er, at en metode giver mulighed for at returnere flere værdier. Det kan være en god idé at bruge en tuple til at repræsentere et sæt heterogene data og give en nem måde at få adgang til disse data på. Tuples er ikke noget nyt og har eksisteret i nogen tid nu. Du har support til tupler på F # og Python programmeringssprog. Du kan drage fordel af en tuple til at gemme en ordnet, endelig sekvens af uforanderlig, endelig sekvens af homogene eller heterogene data i faste størrelser.

Du har nu også støtte til Tuple-bogstaver og Tuple-dekonstruktion. I C # 7 betragtes en tuple som en værditype. Derfor er det en ændret type og meget mere effektiv for så vidt angår ydeevne.

Ikke-ugyldige referencetyper

Nulbare værdityper blev først introduceret i C # 2.0. Ikke-nullabel referencetype er nøjagtigt det modsatte af denne funktion. I det væsentlige bruges en ikke-nullabel referencetype til at betegne en referencetype, der garanteret ikke er null. Sådan erklæres en ikke-ugyldig referencetype i C # 7:

snor! str; // Dette er en ikke-nullabel referencetype

Bedre støtte til uforanderlige genstande

Et uforanderligt objekt er et, hvis tilstand ikke kan ændres, når det er oprettet. Dette gør en uforanderlig genstandstråd sikker. Antag at du opretter en klasse, der indeholder en egenskab, der har en getter, men ingen setter. Ja tilsyneladende ser det ud til, at en forekomst af klassen er uforanderlig. Men på et senere tidspunkt, hvis nogen tilføjer en setter for den samme ejendom, er uforanderligheden tabt, er det ikke?

Her er præcis, hvor den bedre støtte til uforanderlige typer kommer til undsætning. Med C # 7 kan du oprette en ny forekomst baseret på en anden forekomst. Her er hvordan dette kan opnås.

var firstObject = ny medarbejder (101);

var secondObject = firstObject med {EmployeeId = 102};

Registreringstyper

Registreringstyper giver dig mulighed for at oprette en type, der kun bruger egenskaber. I det væsentlige er en posttype en datatype, der kun består af egenskaber. Følgende kodestykke illustrerer, hvordan en posttype kan erklæres.

klasse Rektangel (int Højde, int Bredde);

$config[zx-auto] not found$config[zx-overlay] not found