Zjistěte, jak nadcházející změny vylepší váš kód a usnadní vám život jako vývojáře.

Unikly podrobnosti o velmi očekávaném náhledu C# 12, což umožňuje nahlédnout do nadcházejících funkcí, které by měly způsobit revoluci v jazyce. Tyto funkce jsou velkým příslibem pro zlepšení čitelnosti kódu, optimalizaci výkonu a odemknutí pokročilých možností jazyka.

Vylepšené výrazy přepínačů

C# 8 představen základní spínací výrazy které vám umožní vyjádřit složitou podmíněnou logiku stručně, v čitelné formě. C# 12 to posouvá dále tím, že zavádí novou syntaxi pro porovnávání vzorů pro výrazy přepínačů, což ještě usnadňuje psaní expresivního a stručného kódu.

Zvažte následující fragment kódu.

var výsledek = obj přepínač
{
int i když i > 0 => "Pozitivní",
int i když já < 0 => "Negativní",
_ => "Nula"
};

Tento kód používá výrazy přepínače k ​​určení, zda je to celé číslo pozitivní, negativnínebo nula. V C# 12 můžete tento kód ještě více zjednodušit pomocí nové syntaxe porovnávání vzorů:

var výsledek = obj přepínač
{
> 0 => "Pozitivní",
< 0 => "Negativní",
_ => "Nula"
};

Tato syntaxe vám umožňuje vynechat když klíčové slovo a používat relační operátory přímo ve výrazu switch.

Primární konstruktory pro třídy a struktury

Nyní můžete vytvářet primární konstruktory v libovolném třída nebo struct (alternativa lehké třídy). Pomocí primárních konstruktorů můžete přidat parametry do deklarace třídy a použít tyto hodnoty v těle třídy.

C# 9 zavedl primární konstruktory jako součást poziční syntaxe pro záznamy. C# 12 je rozšiřuje na všechny struktury a třídy.

Parametry můžete umístit za název typu do hranatých závorek, jak je znázorněno níže:

veřejnost třída Student(int id, tětiva jméno, IEnumerable<desetinný> známky)
{
veřejnostStudent(int id, tětiva název): tento(id, jméno, Vyčíslitelné. Prázdný<desetinný>()) { }
veřejnostint Id => id;
veřejnosttětiva Název { dostat; soubor; } = jméno. Trim();
veřejnostdesetinný GPA => známky. Žádný()? stupně. Průměrný(): 4.0m;
}

Parametry primárního konstruktoru jsou v rozsahu v celém těle deklarujícího typu. Můžete nastavit vlastnosti nebo pole nebo je také použít v metodách nebo lokálních funkcích jako proměnné. Tyto parametry můžete také poskytnout základnímu konstruktoru.

Vylepšení interpolovaných řetězců

Interpolované řetězce existují již od C# 6. V C# 12 nyní můžete vytvářet dynamické hodnoty pro řetězce pomocí komplikovaných výrazů.

int i = 5;
tětiva výstup = $"Hodnota i je {i}, a jeho čtverec je {i*i}.";
Řídicí panel. WriteLine (výstup);

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

Použití direktiv pro další typy

S C# 12 můžete použít direktivu using alias k vytvoření aliasu libovolného typu, nejen pojmenovaných typů. Můžete vytvořit sémantické aliasy pro n-tice, pole, ukazatele nebo jiné nebezpečné typy.

Zde je několik příkladů:

použitím Měření = (tětiva Jednotky, int Vzdálenost);
použitím UnitsInt = int?;
Příklad použití aliasů:
veřejnostprázdnotaVýpočet(Měření měření)
{
// Tělo metody
}

Vylepšení lambda exprese

C# 12 zmocňuje výrazy lambda tím, že vám umožňuje definovat výchozí hodnoty parametrů. Syntaxe je stejná jako u ostatních výchozích parametrů:

Například, (int incrementTo = 5) => incrementTo + 1 nastaví výchozí hodnotu 5 pro parametr incrementTo, který volání lambda použije, pokud mu nezadáte hodnotu.

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

Kromě toho došlo k mnoha dalším vylepšením výrazů lambda, aby byly efektivnější.

Například:

  • V rámci funkcí lambda nyní můžete vytvářet složitější výrazy.
  • Nyní můžete transformovat výrazy lambda do stromů výrazů, které zjednodušují složité dotazy a optimalizují výkon.

Asynchronní streamy

S novým můžete iterovat asynchronní zdroje dat asynchronní proudy funkce C# 12. Tento nový iterátor –čekat foreach—pomáhá vám iterovat přes sadu asynchronních dat:

čekatpro každého (var položka vGetItemsAsync())
{
Řídicí panel. WriteLine (položka.hodnota);
}

C# 12: Revoluční kód se vzrušujícími novými funkcemi

V očekávání C# 12 můžete očekávat změnu hry se vzrušujícími novými funkcemi. Tyto pokroky, jako jsou vylepšené výrazy přepínačů, primární konstruktory a vylepšení výrazů lambda, naznačují silné zaměření na jednoduchost kódu, flexibilitu a výkon.

C# 12 je připraven poskytnout významný skok vpřed, což vám umožní psát výraznější, efektivnější a výkonnější kód.