A C# 13 újdonságai
A C# 13 az alábbi új funkciókat tartalmazza. Ezeket a funkciókat a Visual Studio 2022 legújabb verziójával vagy a .NET 9 előzetes verziójú SDK-val is kipróbálhatja.
- Új menekülési sorozat -
\e
. - A metóduscsoport természetes típusának fejlesztései
- Implicit indexelő hozzáférés az objektum inicializálóiban
A C# 13 támogatott a .NET 9-ben. További információ: C# nyelvi verziószámozás.
A .NET 9 legújabb előzetes verziójú SDK-ját a .NET letöltési oldaláról töltheti le. Letöltheti a Visual Studio 2022 előzetes verzióját is, amely tartalmazza a .NET 9 előzetes verziójú SDK-t.
Az új funkciók akkor jelennek meg a "Újdonságok a C#-ban" oldalon, ha nyilvános előzetes kiadásokban érhetők el. A roslyn funkció állapotlapjának munkakészlet szakasza nyomon követi, ha a közelgő funkciók egyesülnek a főággal.
Feljegyzés
Szeretnénk visszajelzést küldeni ezekről a funkciókról. Ha problémákat talál az új funkciók bármelyikével kapcsolatban, hozzon létre egy új problémát a dotnet/roslyn-adattárban .
Új menekülési sorozat
Karakterkonstans feloldósorozatként használható \e
a ESCAPE
Unicode U+001B
karakterhez. Korábban használt \u001b
vagy \x1b
. A használat \x1b
nem ajánlott, mert ha a következő 1b
karakterek érvényes hexadecimális számjegyek voltak, ezek a karakterek a feloldósorozat részévé váltak.
Metóduscsoport természetes típusa
Ez a funkció kis optimalizálásokat tesz lehetővé, hogy túlterhelje a megoldásokat a metóduscsoportok bevonásával. Az előző viselkedés az volt, hogy a fordító egy metóduscsoporthoz a jelölt metódusok teljes készletét hozta létre. Ha természetes típusra volt szükség, a természetes típust a jelölt módszerek teljes készletéből határozták meg.
Az új viselkedés az, hogy az egyes hatókörökben meg kell metszeni a jelölt metódusokat, eltávolítva azokat a jelölt metódusokat, amelyek nem alkalmazhatók. Ezek általában olyan általános metódusok, amelyek nem megfelelő aritású, vagy nem teljesülnek. A folyamat csak akkor folytatódik a következő külső hatókörrel, ha nem talált jelölt metódusokat. Ez a folyamat jobban követi az általános algoritmust a túlterhelés feloldásához. Ha egy adott hatókörben található összes jelölt metódus nem egyezik, a metóduscsoport nem rendelkezik természetes típussal.
A módosítások részleteit a javaslat specifikációjában olvashatja el.
Implicit indexhozzáférés
Az implicit "from the end" indexoperátor ^
mostantól engedélyezett egy objektum inicializáló kifejezésében. Most például inicializálhat egy tömböt egy objektum inicializálójában az alábbi kódban látható módon:
var v = new S()
{
buffer =
{
[^1] = 0,
[^2] = 1,
[^3] = 2,
[^4] = 3,
[^5] = 4,
[^6] = 5,
[^7] = 6,
[^8] = 7,
[^9] = 8,
[^10] = 9
}
};
A C# 13 előtti verziókban az ^
operátor nem használható objektum-inicializálóban. Az elemeket elölről kell indexelnie.