Dajbych.net


Co je nového v C# 7.1, 7.2 a 7.3 a co bude dál

, 2 minuty čtení

net2015 logo

Jazyk C# se neustále vyvíjí a absorbuje mnoho užitečných funkcí. Některé z nich jsou syntaktické a Visual Studio navrhne zjednodušený kód, ale některé z nich umožňují to, co dříve nebylo možné, takže využití nové verze C# vyžaduje změnu v myšlení o kódu. Nejlepším způsobem, jak odemknout nové funkce, je naučit se funkční programování, protože většina funkcí je převzata z jazyka F#.

Největší technická změna je Default interface members, protože vyžaduje změnu v běhovém prostředí .NET, což se od zavedení obecných typů v .NET 2.0 nestalo. Umožní přidat nového člena do rozhraní, pokud poskytnete mapování na jednoho ze stávajících členů.

Nejvýraznějšího zlepšení výkonu bylo dosaženo zavedením Span, což je pole ukazatelů na jiné pole. Metoda string.Substring je neefektivní, protože vrací kopii původního řetězce. Mnohem efektivnější je vrátit okno do původního řetězce, aniž byste museli cokoli kopírovat.

Nejužitečnější změna pro spotřebitele je něco, co může snížit pravděpodobnost NullReferenceException v produkčním kódu. Vývojáři se mohou rozhodnout pro non-nullable reference types, což znamená, že již není možné přiřadit ukazateli null (string je ukazatel). Hodnoty null budou povoleny pouze v typech s možnou hodnotou null (například string?).

„Myslím, že jsem předtím často plakala. Pokud bych to měl udělat znovu, oddělil bych hodnotu nullability od reprezentace typů typu s možnou hodnotou null, takže byste mohli mít odkazové typy, které nelze vyhodnotit, což je jediná věc, kterou dnes nemáme. Schopnost říci: tento řetězec nemůže být nikdy null. Vy, kompilátore, mě varujte, pokud jsem udělal takovou chybu, že někdy dokážu najít nulu.“ – Anders Hejlsberg, hlavní architekt C#, květen 2011, Channel 9

C# 7.1

C# 7.2

C# 7.3

Náhled odkazových typů s možnou hodnotou null v jazyce C#

Náhled vzorů a rozsahů v jazyce C#

Návrhy jazyka C# 8.0