English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In C# müssen Variablen mit einem Datentyp deklariert werden. Diese werden als explizit typisierte Variablen bezeichnet.
int i = 100;// Explizite Variablen
C#3.0 führte den Schlüsselwort var ein, um Variablen auf Methodenebene zu deklarieren, ohne den Datentyp explizit anzugeben.
var j = 100; // Implizit typisierte lokale Variablen
Der Kompilator leitet den Typ aus dem Ausdruck auf der rechten Seite des =-Operators ab. Oben wird var als int kompiliert.
Die Typen werden aus den Ausdrücken abgeleitet.
int i = 10; var j = i + 1; // Kompiliert als int
var kann verwendet werden, um beliebige eingebaute Datentypen, benutzerdefinierte Typen oder anonyme Typen zu deklarieren. Der folgende Beispiel zeigt, wie der C#-Kompilator den Typ basierend auf diesem Wert ableitet:
static void Main(string[] args) { var i = 10; Console.WriteLine("Type of i is {0}", i.GetType()); var str = "Hello World!!"; Console.WriteLine("Type of str is {0}", str.GetType()); var dbl = 100.50d; Console.WriteLine("Type of dbl is {0}", dbl.GetType()); var isValid = true; Console.WriteLine("Type of isValid is {0}", isValid.GetType()); var ano = new { name = "Steve" }; Console.WriteLine("Type of ano is {0}", ano.GetType()); var arr = new[] { 1, 10, 20, 30 }; Console.WriteLine("Type of arr is {0}", arr.GetType()); var file = new FileInfo("MyFile"); Console.WriteLine("Type of file is {0}", file.GetType()); }
Variablen des impliziten Typs müssen bei der Deklaration initialisiert werden; andernfalls gibt der C#-Kompilierer den Fehler: Variablen des impliziten Typs müssen initialisiert werden.
var i; // Kompilierungsfehler: Variablen des impliziten Typs müssen initialisiert werden i = 100;
var erlaubt keine mehrfache Deklaration von Variablen in einer einzigen Anweisung.
var i = 100, j = 200, k = 300; // Fehler: Variablen der var-Syntax können nicht in einer einzigen Anweisung deklariert werden//Nachfolgendes ist auch gültigvar i = 100; var j = 200; var k = 300;
var kann nicht für Funktionsparameter verwendet werden.
void Display(var param) //Kompilierungsfehler { Console.Write(param); }
var kann in for- und foreach-Schleifen verwendet werden.
for(var i = 0; i < 10; i++) { Console.WriteLine(i); }
var kann auch mit LINQ-Abfragen verwendet werden.
// Zeichenkettenkolektion IList<string> stringList = new List<string>() { "C# Tutorials", "VB.NET Tutorials", "Learn C++", "MVC Tutorials", "Java" }; // LINQ-Abfrage-Syntax var result = from s in stringList where s.Contains("Tutorials") select s;