TOC

This article has been localized into German by the community.

Datenarten:

Implizit typisierte Variablen (var)

Ab der C# Version 3.0 können Sie das Schlüsselwort _var _ auf der linken Seite einer Variablendeklaration verwenden, anstatt den Typ der Variablen explizit anzugeben. Dies ist nur innerhalb einer Methode möglich - nicht auf Klassenebene, wo Sie immer den Typ angeben müssen. Lassen Sie uns sehen, wie es aussieht, wenn Sie das Schlüsselwort var verwenden:

int age = 42; // Explicitly typed variable

var name = "John Doe"; // Implicitly typed variable

Zwei Variablen - die eine wird mit dem Typ int deklariert, während die andere mit dem Schlüsselwort var deklariert wird, anstatt sie als Zeichenfolge anzugeben. Beachten Sie, dass ich in beiden Fällen einen Wert zuweiße, da dies zwar beim Deklarieren eines Typs nicht erforderlich ist, jedoch bei Verwendung des Schlüsselworts var. Der Grund dafür ist, dass der C# -Compiler den Typ vom rechten Teil der Anweisung ableitet - er betrachtet einfach, was Sie während der Kompilierung der Variablen zuweisen möchten und ändert dann das Schlüsselwort var in den entsprechenden Typ.

Dies bedeutet auch, dass bei der Verwendung des Schlüsselworts var keine Verzögerung entsteht - es ist zur Laufzeit genauso schnell wie eine explizit deklarierte Variable, da dies im Wesentlichen der Fall ist, wenn das .NET-Framework Ihren Code ausführt.

Unser erstes Beispiel ist sehr trivial - man spart sich nicht viel Zeit beim Schreiben von "var" statt "string". Manchmal deklarieren Sie jedoch viel komplexere Typen, entweder als neue Variable oder als lokales Ergebnis einer Funktion (benutzerdefiniert oder aus dem Framework). In einem Beispiel wie diesem gibt es die Möglichkeit, eine Menge Tastatureingaben zu speichern:

Dictionary<int, List<string>> dict1 = new Dictionary<int, List<string>>();

var dict2 = new Dictionary<int, List<string>>();

Das Ergebnis wird genau das gleiche sein, aber Sie speichern in letzterem Fall einige Tastenanschläge, und da Sie in beiden Fällen den Typ auf der rechten Seite angeben, gibt es bei der Verwendung des Schlüsselworts var in einem Code praktisch keinen Verlust an Lesbarkeit des Code-beispiels.

Sie können auch das Schlüsselwort var verwenden, wenn Sie eine lokale Variable als Ergebnis eines Methodenaufrufs deklarieren:

var s = DateTime.Now.ToString();

Wieder ist es schneller und es ist immer noch ziemlich klar, was passiert und welcher Typ die Variable enthält (eine Zeichenkette). Das würde im folgenden Beispiel nicht so sein:

var myVar = SomeMethodWithANameWhichDoesntIndicateTheReturnType();

In einer Situation wie dieser ist es nicht klar, was die Variable enthalten wird und Sie könnten die Lesbarkeit Ihres Codes opfern. Vielleicht möchten Sie hier eine explizit typisierte Variable verwenden.

Das "var" Schlüsselwort & Anonyme Typen

Bisher sind die Beispiele, die wir mit dem Schlüsselwort var gesehen haben, hauptsächlich aus der Abteilung "syntaktischer Zucker" - sie sind schön um wahr zu sein und kürzer zu tippen, aber nicht wirklich eine Anforderung. Wenn Sie jedoch mit anonymen Typen arbeiten (mehr zu ihnen später), ist es sinnvoll, Ihre Objekte mit dem Schlüsselwort var zu deklarieren:

var myObj = new
{
    Name = "John Doe",
    Age = 42
};
Console.WriteLine(myObj.Name);

In diesem Fall benötigen Sie das Schlüsselwort var, um später auf die Felder des anonymen Typs zuzugreifen, wie in diesem Beispiel gezeigt.

Zusammenfassung

Mit dem Schlüsselwort var können Sie eine lokale Variable (innerhalb einer Methode oder einer Schleife) deklarieren, ohne den Typ explizit anzugeben. Stattdessen leitet der C# -Compiler den Typ vom rechten Teil der Deklaration ab. Dies kann in vielen Situationen sehr praktisch sein, aber es kann auch dazu führen, dass Ihr Code etwas weniger lesbar wird. Sie können es verwenden oder bei der expliziten Deklaration der Variablentypen bleiben - was immer Sie bevorzugen, benötigen Sie es aber für anonyme Typen, wie bereits erläutert.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!