Vor- und Nachteile der implizierten Variablendeklaration var in C#

Mit der Version 3.0 hat Microsoft in C# das Schlüsselwort var eingeführt. Es erlaubt dem Entwickler das Deklarieren einer Variablen, ohne ausdrücklich deren Typ angeben zu müssen. ZDNet stellt das Schlüsselwort im Detail vor.

Was ist var? Das Schlüsselwort var wird in Variablendeklarationen anstelle eines Typs verwendet. Die technische Bezeichnung für var lautet: "implizit typisierte lokale Variablendeklaration". Die Variable selbst ist nach wie vor statisch typisiert (der Typ wird beim Kompilieren des Codes festgelegt) und stark typisiert (der Typ kann nach seiner Deklaration nicht mehr verändert werden). Der Unterschied besteht darin, dass der Typ der Variable nicht mehr explizit im Quellcode angegeben wird. Stattdessen leitet der Compiler den Typ der Variablen je nach der Initialisierung für die Variable ab. Zum Beispiel:


In diesem Beispiel wird der maxValue mit einem Typ System.Int32 kompiliert, der customerFirstName ist ein System.String und stopwatch ist System.Timers.Timer. Falls es nicht klar sein sollte: Bei Verwendung von var zur Deklaration einer Variablen ist eine Initialisierung in der Deklaration zwingend erforderlich. Für diese Initialisierung gelten unter anderem folgende Einschränkungen:

  • Es muss sich um einen Ausdruck handeln, der einen Wert mit einem Typ zurückgibt; anonyme Funktionsdeklarationen (wie Lambdas) sind beispielsweise nicht gültig, aber Literals und Objektkonstruktoren sind zulässig.
  • ein Null-Typ darf nicht ausgegeben werden.
  • Ein Verweis auf die deklarierte Variable ist nicht möglich.
  • Nur eine Deklaration pro Anweisung ist zulässig; mehrere Deklarationen sind nicht erlaubt.

Mehr Details hierzu findet man unter Punkt 8.5.1 der Sprachspezifikation C# 3.0 (DOC-Format).

Fanden Sie diesen Artikel nützlich?
8 von 14 Lesern fanden diesen Artikel nützlich.

Aktuelle Job-Angebote

ZDNet.de Live

Sex ...

Sex Tech: EFF Exposes Dating Site Security, Fileporn Shutdown, Facebook Sex Predator t.co/...

11.02.12, 00:20 von ZDNet
Guinn ...

Guinness World Record for Facebook comments now 1 million t.co/...

11.02.12, 00:20 von ZDNet
Chart ...

Chart Show: "wenn ich Candle in the Wind" höre, denke ich sofort an Lady Di" ... ach? Nein! Wie das nur?!? #gigafail

10.02.12, 23:39 von coke4all
Chrom ...

Chrome for Android -- best mobile browser t.co/...

10.02.12, 22:35 von ZDNet
UL, ...

UL, Drexel University partner to establish research hub t.co/...

10.02.12, 22:15 von ZDNet
wow! ...

wow! ein wirklich schickes Android, das nicht Tablet-Größe hat: t.co/... ... leider nur mäßige technische Daten.

10.02.12, 21:25 von coke4all
Googl ...

Google arbeitet angeblich an Home Entertainment System mit Cloudanbindung t.co/...

10.02.12, 21:10 von zdnet_de
Why ...

Why are young Japanese men losing interest in sex? t.co/...

10.02.12, 20:55 von ZDNet
What ...

What AMD's new roadmap means for users t.co/...

10.02.12, 20:40 von ZDNet
Manch ...

Manchester City is expanding its online reach to Japan t.co/...

10.02.12, 20:35 von ZDNet
Fours ...

Foursquare evolving into one-stop shop with NFC support t.co/...

10.02.12, 20:35 von ZDNet
Websi ...

Website der Gelben Seiten baut Bewertungsfunktionen aus t.co/...

10.02.12, 20:30 von zdnet_de
Motor ...

Motorola: Android-Updates verzögern sich wegen der Hardware-Vielfalt t.co/...

10.02.12, 20:00 von zdnet_de
Aktie ...

Aktienkurse dort wo man sie am liebsten sieht: auf dem Mülleimer! t.co/...

10.02.12, 19:50 von coke4all
Faceb ...

Facebook details Zuckerberg's $500,000 salary, 45% bonus t.co/...

10.02.12, 19:45 von ZDNet
New ...

New Microsoft Office University product comes with tougher verification rules t.co/...

10.02.12, 19:35 von ZDNet
#Prad ...

#Prada Phone by #LG 3.0 ausgepackt und ausprobiert - #smartphone #android t.co/...

10.02.12, 19:30 von cnet_de
Schon ...

Schon im Test: Prada Phone by LG 3.0 mit Android und superhellem Display t.co/...

10.02.12, 19:30 von cnet_de
Beta ...

Beta von Chrome 18 erweitert Hardwarebeschleunigung t.co/...

10.02.12, 19:30 von zdnet_de