Nieuwe features in C# 6

Auto property initializers
Het is voortaan mogelijk om een property van een default waarde te voorzien bij het declareren van de property.

Daarnaast is het mogelijk om een auto property initializer te gebruiken op een property zonder setter waardoor de property echt immutable wordt (ook vanuit de context van de class zelf).
blank

Null conditional operator
In het onderstaande voorbeeld zie je code waarbij de property city wordt geretourneerd, behalve wanneer person of address null zijn. In dat geval wordt een de default value van het type geretourneerd (city is een string en zal een null teruggeven, bij getallen zou dit een 0 zijn).
blank

String interpolation
Wanneer je een string wilt combineren met waardes van fields of properties kun je voortaan gebruik maken van string interpolation. Je doet dit door een dollar teken voor de string te zetten en de veldnaam tussen {}-haken te plaatsen.
blank

nameOf()
NameOf lijkt wat op TypeOf met het verschil dat het niet het type van een object of property teruggeeft, maar de naam. In het onderstaande voorbeeld zou de waarde van propertyName dus “City” zijn. Handig wanneer je in bijvoorbeeld logging wilt verwijzen naar de naam van een property in code.
blank

Dictionary initializers
Het is voortaan mogelijk om een dictionary snel te initialiseren door de onderstaande constructie [key] = value. Dit scheelt niet heel veel code, maar is wel iets leesbaarder.
blank

Expression bodied functions
Korte functies zoals hieronder:
blank

Kun je voortaan ook zo schrijven:
blank

Await in catch en finally blocks
Het is voortaan mogelijk om het await ook te gebruiken in try en finally blokken. Dit is prettig wanneer je in een exception handling block iets asynchroon naar logging zou willen wegschrijven.

Exception filters
Het is voortaan mogelijk om uitgebreide exception filters te gebruiken:
blank

Hoewel het bovenstaande voorbeeld nooit in de catch zou terechtkomen omdat de naam “Eindhoven” niet in een standaard exception message voorkomt, toont het wel hoe een exception filter toegepast kan worden.

Auteur: Menno Jongerius

Deel deze pagina via:
berglerNieuwe features in C# 6