Odkrijte, kako bodo prihajajoče spremembe izboljšale vašo kodo in olajšale vaše življenje razvijalca.
Pricurljale so podrobnosti o težko pričakovanem predogledu C# 12, ki daje vpogled v prihajajoče funkcije, ki bi morale spremeniti jezik. Te funkcije veliko obetajo za izboljšanje berljivosti kode, optimizacijo delovanja in odklepanje naprednih zmogljivosti jezika.
Izboljšani stikalni izrazi
Predstavljen C# 8 osnovni stikalni izrazi ki vam omogočajo, da zapleteno pogojno logiko izrazite jedrnato, v berljivi obliki. C# 12 to popelje še dlje z uvedbo nove sintakse za ujemanje vzorcev za preklopne izraze, kar še olajša pisanje ekspresivne in jedrnate kode.
Razmislite o naslednjem izrezku kode.
var rezultat = obj stikalo
{
int jaz kdaj jaz > 0 => "pozitivno",
int jaz kdaj jaz < 0 => "Negativno",
_ => "nič"
};
Ta koda uporablja preklopne izraze, da ugotovi, ali je celo število pozitivno, negativno, oz nič. V C# 12 lahko to kodo še bolj poenostavite z uporabo nove sintakse za ujemanje vzorcev:
var rezultat = obj stikalo
{
> 0 => "pozitivno",
< 0 => "Negativno",
_ => "nič"
};
Ta sintaksa vam omogoča, da izpustite kdaj in uporabite relacijske operatorje neposredno v izrazu stikala.
Primarni konstruktorji za razrede in strukture
Zdaj lahko ustvarite primarne konstruktorje v katerem koli razred oz struct (alternativa lahkega razreda). Z uporabo primarnih konstruktorjev lahko dodate parametre v deklaracijo razreda in uporabite te vrednosti v telesu razreda.
C# 9 je predstavil primarne konstruktorje kot del pozicijske sintakse za zapise. C# 12 jih razširi na vse strukture in razrede.
Parametre lahko postavite za imenom tipa v oklepajih, kot je prikazano spodaj:
javnosti razred študent(int id, vrvica ime, IEnumerable<decimalno> ocene)
{
javnostištudent(int id, vrvica ime): to(id, ime, Enumerable. Prazno<decimalno>()) { }
javnostiint Id => id;
javnostivrvica ime { dobiti; set; } = ime. Obrezovanje();
javnostidecimalno GPA => ocene. Kaj()? ocene. Povprečje(): 4.0m;
}
Parametri primarnega konstruktorja so v obsegu celotnega telesa deklaracijskega tipa. Lastnosti ali polja lahko nastavite ali pa jih uporabite v metodah ali lokalnih funkcijah kot spremenljivke. Te parametre lahko posredujete tudi osnovnemu konstruktorju.
Izboljšave interpoliranih nizov
Interpolirani nizi obstajajo že od C# 6. V C# 12 lahko zdaj ustvarite dinamične vrednosti za nize z uporabo zapletenih izrazov.
int jaz = 5;
vrvica izhod = $"Vrednost i je {jaz}, njegov kvadrat pa je {i*i}.";
Konzola. WriteLine (izhod);
Ta koda natisne "Vrednost i je 5, njegov kvadrat pa 25".
Uporaba direktiv za dodatne tipe
S C# 12 lahko uporabite direktivo using alias za vzdevek kateremu koli tipu, ne le imenovanim tipom. Ustvarite lahko semantične vzdevke za tuple, nize, kazalce ali druge nevarne vrste.
Tukaj je nekaj primerov:
uporabo Meritev = (vrvica enote, int Razdalja);
uporabo UnitsInt = int?;
Primer uporabe vzdevkov:
javnostiprazninaIzračun(Merjenje merjenje)
{
// Telo metode
}
Izboljšave lambda izraza
C# 12 krepi lambda izraze tako, da vam omogoča definiranje privzetih vrednosti za parametre. Sintaksa je enaka sintaksi drugih privzetih parametrov:
na primer (int incrementTo = 5) => incrementTo + 1 nastavi privzeto vrednost 5 za parameter incrementTo, ki ga bo uporabil klic lambda, če mu ne posredujete vrednosti.
var incrementWithDefault = (int incrementTo = 5) => povečaj na + 1;
incrementWithDefault(); // 6
incrementWithDefault(9); // 10
Poleg tega je prišlo do številnih drugih izboljšav lambda izrazov, da bi bili učinkovitejši.
Na primer:
- Zdaj lahko ustvarite bolj zapletene izraze znotraj lambda funkcij.
- Zdaj lahko pretvorite lambda izraze v izrazna drevesa, ki poenostavijo zapletene poizvedbe in optimizirajo zmogljivost.
Asinhroni tokovi
Z novim lahko ponavljate asinhrone vire podatkov asinhroni tokovi značilnost C# 12. Ta novi iterator—počakaj foreach— vam pomaga iterirati čez niz asinhronih podatkov:
čakatiza vsakogar (var postavka vGetItemsAsync())
{
Konzola. WriteLine (element.vrednost);
}
C# 12: Revolucionarna koda z vznemirljivimi novimi funkcijami
V pričakovanju C# 12 lahko pričakujete posodobitev, ki bo spremenila igro z razburljivimi novimi funkcijami. Ti napredki, kot so izboljšani preklopni izrazi, primarni konstruktorji in izboljšave lambda izrazov, kažejo močno osredotočenost na preprostost kode, prilagodljivost in zmogljivost.
C# 12 je pripravljen narediti pomemben korak naprej, saj vam omogoča pisanje bolj izrazite, učinkovite in zmogljive kode.