Zistite, ako nadchádzajúce zmeny zlepšia váš kód a uľahčia vám život ako vývojára.

Unikli podrobnosti o veľmi očakávanej ukážke C# 12, čo umožňuje nahliadnuť do pripravovaných funkcií, ktoré by mali spôsobiť revolúciu v jazyku. Tieto funkcie sú veľkým prísľubom pre zlepšenie čitateľnosti kódu, optimalizáciu výkonu a odomknutie pokročilých možností jazyka.

Vylepšené výrazy prepínačov

C# 8 predstavený základné prepínacie výrazy ktoré vám umožnia vyjadriť komplexnú podmienenú logiku stručne, v čitateľnej forme. C# 12 to posúva ďalej zavedením novej syntaxe na porovnávanie vzorov pre výrazy prepínačov, vďaka čomu je ešte jednoduchšie písať expresívny a stručný kód.

Zvážte nasledujúci útržok kódu.

var výsledok = obj prepínač
{
int i kedy i > 0 => "pozitívny",
int i kedy ja < 0 => "negatívny",
_ => "nula"
};

Tento kód používa prepínacie výrazy na určenie, či ide o celé číslo pozitívne, negatívne, alebo nula. V C# 12 môžete tento kód ešte viac zjednodušiť pomocou novej syntaxe na porovnávanie vzorov:

var výsledok = obj prepínač
{
> 0 => "pozitívny",
< 0 => "negatívny",
_ => "nula"
};
instagram viewer

Táto syntax vám umožňuje vynechať kedy kľúčové slovo a použiť relačné operátory priamo vo výraze prepínača.

Primárne konštruktory pre triedy a štruktúry

Teraz môžete vytvárať primárne konštruktory v ľubovoľnom trieda alebo struct (alternatíva ľahkej triedy). Pomocou primárnych konštruktorov môžete pridať parametre do deklarácie triedy a použiť tieto hodnoty v tele triedy.

C# 9 zaviedol primárne konštruktory ako súčasť pozičnej syntaxe pre záznamy. C# 12 ich rozširuje na všetky štruktúry a triedy.

Parametre môžete umiestniť za názov typu do zátvoriek, ako je to znázornené nižšie:

verejnosti trieda Študent(int id, reťazec meno, IEnumerable<desiatkový> známky)
{
verejnostiŠtudent(int id, reťazec názov): toto(id, meno, Enumerable. Prázdne<desiatkový>()) { }
verejnostiint Id => id;
verejnostireťazec Názov { dostať; nastaviť; } = meno. Trim();
verejnostidesiatkový GPA => známky. Akýkoľvek()? ročníkov. Priemer(): 4.0m;
}

Parametre primárneho konštruktora sú v rozsahu celého tela deklarujúceho typu. Môžete nastaviť vlastnosti alebo polia alebo ich tiež použiť v metódach alebo lokálnych funkciách ako premenné. Tieto parametre môžete poskytnúť aj základnému konštruktorovi.

Vylepšenia interpolovaných reťazcov

Interpolované reťazce existujú už od C# 6. V C# 12 teraz môžete vytvárať dynamické hodnoty pre reťazce pomocou komplikovaných výrazov.

int i = 5;
reťazec výstup = $"Hodnota i je {i}, a jeho štvorec je {i*i}.";
Konzola. WriteLine (výstup);

Tento kód vypíše „Hodnota i je 5 a jeho druhá mocnina je 25“.

Použitie smerníc pre ďalšie typy

S C# 12 môžete použiť direktívu using alias na alias akéhokoľvek typu, nielen pomenovaných typov. Môžete vytvoriť sémantické aliasy pre n-tice, polia, ukazovatele alebo iné nebezpečné typy.

Tu je niekoľko príkladov:

použitím Meranie = (reťazec Jednotky, int Vzdialenosť);
použitím UnitsInt = int?;
Príklad použitia aliasov:
verejnostineplatnéKalkulácia(Meranie merania)
{
// Telo metódy
}

Zlepšenie lambda expresie

C# 12 podporuje výrazy lambda tým, že vám umožňuje definovať predvolené hodnoty parametrov. Syntax je identická so syntaxou ostatných predvolených parametrov:

Napríklad, (int incrementTo = 5) => incrementTo + 1 nastaví predvolenú hodnotu 5 pre parameter incrementTo, ktorý volanie lambda použije, ak mu neodovzdáte hodnotu.

var incrementWithDefault = (int incrementTo = 5) => incrementTo + 1;
incrementWithDefault(); // 6
incrementWithDefault(9); // 10

Okrem toho do výrazov lambda prišlo mnoho ďalších vylepšení, aby boli efektívnejšie.

Napríklad:

  • Teraz môžete vytvárať zložitejšie výrazy v rámci funkcií lambda.
  • Teraz môžete transformovať výrazy lambda na stromy výrazov, ktoré zjednodušia zložité dotazy a optimalizujú výkon.

Async Streams

Môžete iterovať cez asynchrónne zdroje údajov s novým asynchrónne prúdy vlastnosť C# 12. Tento nový iterátor -čakať foreach—pomáha vám iterovať cez množinu asynchrónnych údajov:

čakaťpre každý (var položka vGetItemsAsync())
{
Konzola. WriteLine (položka.hodnotu);
}

C# 12: Revolučný kód so vzrušujúcimi novými funkciami

V očakávaní C# 12 môžete očakávať zmenu hry so zaujímavými novými funkciami. Tieto pokroky, ako sú vylepšené výrazy prepínania, primárne konštruktory a vylepšenia výrazov lambda, naznačujú silné zameranie na jednoduchosť, flexibilitu a výkon kódu.

C# 12 je pripravený poskytnúť významný skok vpred, čo vám umožní písať výraznejší, efektívnejší a výkonnejší kód.