Met het trefwoord var kunt u een lokale variabele definiëren zonder expliciet het variabeletype op te geven. Dit wordt type-inferentie of impliciet typen genoemd.

Anonieme typen gebruiken
Door objectinitializers en type-inferentie te combineren, kan ik eenvoudige weergavemodelobjecten maken die nuttig zijn voor het overbrengen van gegevens tussen een controller en een weergave zonder een klasse of struct te hoeven definiëren.


Elk van de objecten in de array producten is een anoniem getypt object. Dit betekent niet dat het dynamisch is in de zin van dat JavaScript-variabelen dynamisch zijn. Het betekent alleen dat de typedefinitie automatisch door de compiler wordt gemaakt. Sterk Typen wordt nog steeds afgedwongen. U kunt bijvoorbeeld alleen de eigenschappen ophalen en instellen die in de initializer zijn gedefinieerd. Start ASP.NET opnieuw op. Kern- en aanvraag http://localhost:5000 en u ziet de volgende uitvoer in het browservenster.
De C#-compiler genereert de klasse op basis van de naam en het type van de parameters in de initializer. Twee anoniem getypt Objecten met dezelfde eigenschapsnamen en -typen worden toegewezen aan dezelfde automatisch gegenereerde klasse. Dit betekent dat alle objecten in de array producten hebben hetzelfde type omdat ze dezelfde eigenschappen definiëren.


Standaardimplementaties gebruiken in interfaces
C# 8.0 introduceert de mogelijkheid om standaardimplementaties te definiëren voor eigenschappen en methoden die door interfaces zijn gedefinieerd. Dit lijkt misschien als een vreemde functie omdat interfaces bedoeld zijn als een beschrijving van functies zonder een implementatie te specificeren, maar dit toevoeging aan C# maakt het mogelijk om interfaces bij te werken zonder de bestaande implementaties ervan te breken.