Novinky v jazyce C# 13
C# 13 obsahuje následující nové funkce. Tyto funkce můžete vyzkoušet pomocí nejnovější verze sady Visual Studio 2022 nebo sady .NET 9 Preview SDK.
- Nová řídicí sekvence -
\e
. - Vylepšení přirozeného typu skupiny metod
- Implicitní přístup indexeru v inicializátorech objektů
C# 13 je podporován v .NET 9. Další informace najdete v tématu Správa verzí jazyka C#.
Nejnovější sadu .NET Preview SDK si můžete stáhnout ze stránky pro stahování .NET. Můžete si také stáhnout Sadu Visual Studio 2022 – Preview, která zahrnuje sadu .NET 9 Preview SDK.
Nové funkce se přidají na stránku Co je nového v jazyce C#, když jsou dostupné ve verzích Public Preview. Oddíl pracovní sadystránky stavu funkce roslyn sleduje, kdy se nadcházející funkce sloučí do hlavní větve.
Poznámka:
Zajímá nás vaše názory na tyto funkce. Pokud zjistíte problémy s některou z těchto nových funkcí, vytvořte v úložišti dotnet/roslyn nový problém.
Nová řídicí sekvence
Jako znakovou řídicí sekvenci můžete použít \e
řídicí sekvenci znakuESCAPE
, Unicode U+001B
. Dříve jste použili \u001b
nebo \x1b
. Použití \x1b
se nedoporučuje, protože pokud následující další znaky 1b
byly platné šestnáctkové číslice, tyto znaky se staly součástí řídicí sekvence.
Přirozený typ skupiny metod
Tato funkce provádí malé optimalizace pro přetížení rozlišení zahrnující skupiny metod. Předchozí chování bylo pro kompilátor vytvořit úplnou sadu kandidátských metod pro skupinu metod. Pokud byl nutný přirozený typ, byl přirozený typ určen z celé sady kandidátských metod.
Nové chování spočívá v vyřazení sady kandidátských metod v každém oboru a odebráním metod kandidáta, které nejsou použitelné. Obvykle se jedná o obecné metody s nesprávným zápisem nebo omezeními, která nejsou splněna. Proces pokračuje k dalšímu vnějšímu oboru pouze v případě, že nebyly nalezeny žádné kandidátské metody. Tento proces se podrobněji řídí obecným algoritmem pro řešení přetížení. Pokud se všechny kandidátské metody nalezené v daném oboru neshoduje, skupina metod nemá přirozený typ.
Podrobnosti o změnách ve specifikaci návrhu si můžete přečíst.
Implicitní přístup k indexu
Implicitní operátor indexu "from the end" je ^
nyní povolen ve výrazu inicializátoru objektů. Teď můžete například inicializovat pole v inicializátoru objektů, jak je znázorněno v následujícím kódu:
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
}
};
Ve verzích starších než C# 13 ^
nelze operátor použít v inicializátoru objektů. Musíte indexovat prvky z přední části.
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro