Otkrijte kako će nadolazeće promjene poboljšati vaš kod i učiniti vaš život programera još malo lakšim.
Pojedinosti o dugo očekivanom C# 12 Previewu su procurile, dajući kratak uvid u nadolazeće značajke koje bi trebale revolucionirati jezik. Ove značajke mnogo obećavaju za poboljšanje čitljivosti koda, optimiziranje performansi i otključavanje naprednih mogućnosti jezika.
Poboljšani Switch Expressions
Predstavljen C# 8 osnovni prekidački izrazi koji vam omogućuju da složenu uvjetnu logiku izrazite sažeto, u čitljivom obliku. C# 12 ide dalje uvođenjem nove sintakse za usklađivanje uzoraka za switch izraze, što dodatno olakšava pisanje ekspresivnog i sažetog koda.
Razmotrite sljedeći isječak koda.
var rezultat = obj sklopka
{
int ja kada ja > 0 => "Pozitivan",
int ja kada ja < 0 => "Negativan",
_ => "Nula"
};
Ovaj kod koristi switch izraze kako bi odredio je li cijeli broj pozitivan, negativan, ili nula. U C# 12 ovaj kod možete dodatno pojednostaviti pomoću nove sintakse za usklađivanje uzoraka:
var rezultat = obj sklopka
{
> 0 => "Pozitivan",
< 0 => "Negativan",
_ => "Nula"
};
Ova sintaksa omogućuje izostavljanje kada ključnu riječ i koristite relacijske operatore izravno u izrazu switch.
Primarni konstruktori za klase i strukture
Sada možete stvoriti primarne konstruktore u bilo kojem razreda ili struct (alternativa lagane klase). Koristeći primarne konstruktore, možete dodati parametre u deklaraciju klase i koristiti te vrijednosti unutar tijela klase.
C# 9 je uveo primarne konstruktore kao dio pozicione sintakse za zapise. C# 12 ih proširuje na sve strukture i klase.
Možete staviti parametre iza naziva tipa u zagrade kao što je prikazano u nastavku:
javnost razreda Student(int iskaznica, niz ime, IEnumerable<decimal> ocjene)
{
javnostStudent(int iskaznica, niz Ime): ovaj(id, ime, Nabrojivi. Prazan<decimal>()) { }
javnostint Id => id;
javnostniz Ime { dobiti; postaviti; } = ime. Trim();
javnostdecimal GPA => ocjene. Bilo koji()? ocjene. Prosjek(): 4.0m;
}
Parametri primarnog konstruktora nalaze se u opsegu kroz cijelo tijelo deklarirajućeg tipa. Možete postaviti svojstva ili polja ili ih također možete koristiti u metodama ili lokalnim funkcijama kao varijable. Možete dati ove parametre i osnovnom konstruktoru.
Poboljšanja interpoliranih nizova
Interpolirani nizovi postoje od C# 6. U C# 12 sada možete stvarati dinamičke vrijednosti za nizove pomoću kompliciranih izraza.
int ja = 5;
niz izlaz = $"Vrijednost i je {i}, a njegov kvadrat je {i*i}.";
Konzola. WriteLine (izlaz);
Ovaj kod ispisuje "Vrijednost i je 5, a njegov kvadrat je 25".
Korištenje direktiva za dodatne tipove
Uz C# 12, možete koristiti naredbu using alias za alias bilo kojeg tipa, a ne samo imenovanih tipova. Možete stvoriti semantičke aliase za skupove, nizove, pokazivače ili druge nesigurne tipove.
Evo nekoliko primjera:
korištenjem Mjerenje = (niz Jedinice, int Udaljenost);
korištenjem JediniceInt = int?;
Primjer upotrebe aliasa:
javnostponištitiKalkulacija(Mjerenje mjerenja)
{
// Tijelo metode
}
Poboljšanja lambda izraza
C# 12 osnažuje lambda izraze dopuštajući vam da definirate zadane vrijednosti za parametre. Sintaksa je identična sintaksi ostalih zadanih parametara:
Na primjer, (int incrementTo = 5) => incrementTo + 1 postavlja zadanu vrijednost 5 za parametar incrementTo, koji će lambda poziv koristiti ako mu ne proslijedite vrijednost.
var incrementWithDefault = (int incrementTo = 5) => povećanjeNa + 1;
incrementWithDefault(); // 6
incrementWithDefault(9); // 10
Osim toga, mnoga su druga poboljšanja došla do lambda izraza kako bi bili učinkovitiji.
Na primjer:
- Sada možete stvarati složenije izraze unutar lambda funkcija.
- Sada možete transformirati lambda izraze u stabla izraza koja pojednostavljuju složene upite i optimiziraju izvedbu.
Asinkroni tokovi
Možete iterirati kroz asinkrone izvore podataka s new asinkroni tokovi značajka C# 12. Ovaj novi iterator—čekati foreach— pomaže vam u iteraciji preko skupa asinkronih podataka:
čekatiza svakoga (var artikal uGetItemsAsync())
{
Konzola. WriteLine (stavka.vrijednost);
}
C# 12: Revolucioniranje koda s uzbudljivim novim značajkama
U iščekivanju C# 12, možete očekivati ažuriranje koje će promijeniti igru s uzbudljivim novim značajkama. Ova poboljšanja, kao što su poboljšani izrazi prekidača, primarni konstruktori i poboljšanja lambda izraza, ukazuju na snažan fokus na jednostavnost koda, fleksibilnost i izvedbu.
C# 12 spreman je napraviti značajan korak naprijed, omogućujući vam pisanje ekspresivnijeg, učinkovitijeg i moćnijeg koda.