10 Weitere C#-Sprachfeatures
10.1 Implizit typisierte Variablen
Bei der Deklaration einer Variablen müssen Sie deren Datentyp angeben. So haben Sie es gelernt. Mit Einführung von C# 3.0 hat sich das geändert. Die Typinferenz gestattet es Ihnen, eine Variable mit dem neuen Schlüsselwort var zu deklarieren, ohne dabei den Datentyp angeben zu müssen:
Das Schlüsselwort var bewirkt, dass der Compiler den am besten passenden Datentyp aus dem Ausdruck rechts vom Zuweisungsoperator ableitet. In unserem Beispiel wäre es ein Integer. Der Compiler behandelt die Variable dann so, als wäre sie von diesem Typ deklariert worden.
Bei dem abgeleiteten Typ kann es sich um einen integrierten Typ, einen anonymen Typ, einen benutzerdefinierten Typ, einen in der .NET Framework-Klassenbibliothek definierten Typ oder um einen Ausdruck handeln. Im folgenden Listing 10.1 sehen Sie noch einige Beispiele, die den Einsatz implizit typisierter Variablen demonstrieren.
// value wird als Integer behandelt
var value = 5;
// city wird als String behandelt
var city = "Aachen";
// arr wird als int[]-Array behandelt
var arr = new[] { 0, 1, 2 };
// liste wird als List<int> behandelt
var liste = new List<int>();
Listing 10.1 Implizit typisierte Variablen
Das Konzept implizit typisierter Variablen hat einige Einschränkungen:
- Die Variable muss eine lokale Variable sein.
- Die Initialisierung muss bei der Deklaration erfolgen.
- Einer implizit typisierten Variablen darf nicht null zugewiesen werden.
- Ein Methodenparameter darf nicht mit var deklariert werden.
- Der Rückgabetyp einer Methode darf ebenfalls nicht var sein.
Die Verwendung implizit typisierter Variablen ist nicht nur auf die Verwendung als lokale Variable beschränkt. Sie können sie auch in einer for- oder foreach-Schleife verwenden, wie in den beiden folgenden Codefragmenten gezeigt wird.
for (var x = 0; x < 100; x++) [...]
foreach (var element in liste) [...]
Sie werden sich vermutlich nun fragen, wozu implizit typisierte Variablen dienen. Betrachten Sie sie einfach nur als syntaktisches Hilfsmittel, das Sie zwar einsetzen können. Dennoch sollten Sie nach Möglichkeit darauf verzichten. Unverzichtbar werden implizit typisierte Variablen im Zusammenhang mit LINQ-Abfrageausdrücken (siehe auch Kapitel 11) und den dort anzutreffenden »anonymen Typen«. Letztgenannte wollen wir uns als Nächstes ansehen.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.