This post originated from an RSS feed registered with .NET Buzz
by -.
Original Post: C# 3.0: Keyword var
Feed Title: Norbert Eder - Living .NET
Feed URL: http://feeds.feedburner.com/NorbertEder-Livingnet
Feed Description: Copyright (c)2005, 2006 by Norbert Eder
Nein, var steht hier nicht in nostalgischer Verbindung zu Visual Basic. Vielmehr handelt es sich streng genommen auch nicht wirklich um ein Schlüsselwort (Keyword). Schlüsselwörter dürfen ja nicht in Klassen, Strukturen etc. verwendet werden, var hingegen sehr wohl. Aber unabhängig dieser Tatsache, was verbirgt sich dahinter?
Beginnen wir mit einem kleinen Beispiel:
var htTemp = new Hashtable();
In diesem Fall versucht der Compiler auf den Typ von strList zu schließen, was auch kein Problem darstellt, da dieser ohnehin durch new Hashtable() definiert wird. Es entfällt also die lange und natürlich auch unschöne und redudante Darstellung á la:
Hashtable htTemp = new Hashtable();
Manche mögen nun der Meinung sein, dass sich C# dadurch von der starken Typisierung verabschiedet. Dem ist jedoch nicht so. Wurde die Variable deklariert, wird auf ihren Typ geschlossen und zugewiesen. Der Typ kann an einer späteren Stelle nicht mehr verändert werden (wie dies beispielsweise unter VB.NET möglich ist).
Ebenfalls sei zu betonen, dass var auch nur bei der Initialisierung verwendet werden kann.