Nieuwe features in C# 6
379

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

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).
c6-2

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).
c6-3

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.
c6-4

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.
c6-5

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.
c6-6

Expression bodied functions
Korte functies zoals hieronder:
c6-7

Kun je voortaan ook zo schrijven:
c6-8

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:
c6-9

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