Implizite Typisierung in C# 👍 👎

C# ist und bleibt zwar eine grundsätzlich statisch typisierte Programmiersprache, erlaubt jedoch auch die implizite Typisierung mit Hilfe des var-Schlüsselwortes:
Verwendung
01
var age = 24;  // äquivalent zu "int age = 24"
Der konkrete Typ wird dabei implizit durch den Wert auf der rechten Seite bestimmt. Dies kann den Quelltext besonders bei komplexen Strukturen (z. B. im Hinblick auf generische Programmierung) etwas kompakter gestalten, je nach Gewohnheit aber auch etwas schwerer zu verstehen sein. Es bleibt wie so oft dem Entwickler (bzw. den Richtlinien des Teams) überlassen, wie damit umzugehen ist.

Wichtig zu verstehen ist in jedem Fall, dass var in diesem Fall nur ein syntaktisches Hilfsmittel ist und keine dynamische Typisierung eingeführt wird (dazu in einem späteren Artikel mehr). Das bedeutet insbesondere, dass unserem "age" später nicht etwa eine Zeichenkette zugewiesen werden kann.

Zwingend notwendig ist diese Vorgehensweise jedoch bei anonymen Typen, da der Typ keinen (bzw. lediglich einen internen, dem Compiler bekannten) Typenbezeichner besitzt:
Verwendung bei anonymen Typen
0102030405
var ich = new {    FirstName = "Holger",    LastName = "Stehle",    Age = 24};
Auch im Rahmen von LINQ-Abfrageausdrücken kann dieses Vorgehen beispielsweise bei der Projektion von Daten aus einer Liste mittels Select(…) notwendig sein (aus ähnlichen Gründen wie im Beispiel zuvor).


Projektverweise

Kategorien / Archiv  |  Übersicht RSS-Feed

Schlagworte

Suche