English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In C#, le variabili devono essere dichiarate con un tipo di dati. Queste si chiamano variabili di tipo esplicito.
int i = 100; // variabile esplicita
C# 3.0 ha introdotto la parola chiave var per dichiarare variabili a livello di metodo senza specificare esplicitamente il tipo di dati.
var j = 100; // variabile locale di tipo implicito
Il compilatore dedurrà il tipo della variabile dalla parte destra dell'operatore = dell'espressione. Sopra, var verrà compilato come int.
Di seguito, il tipo viene dedotto dall'espressione.
int i = 10; var j = i + 1; // compilato come int
var può essere utilizzato per dichiarare qualsiasi tipo di dati built-in, tipo utente definito o variabile di tipo anonimo. Ecco un esempio che mostra come il compilatore C# deduce il tipo in base a questo valore:
static void Main(string[] args) { var i = 10; Console.WriteLine("Il tipo di i è {0}", i.GetType()); var str = "Hello World!!"; Console.WriteLine("Il tipo di str è {0}", str.GetType()); var dbl = 100.50d; Console.WriteLine("Il tipo di dbl è {0}", dbl.GetType()); var isValid = true; Console.WriteLine("Il tipo di isValid è {0}", isValid.GetType()); var ano = new { name = "Steve" }; Console.WriteLine("Il tipo di ano è {0}", ano.GetType()); var arr = new[] { 1, 10, 20, 30 }; Console.WriteLine("Il tipo di arr è {0}", arr.GetType()); var file = new FileInfo("MyFile"); Console.WriteLine("Il tipo del file è {0}", file.GetType()); }
Le variabili di tipo implicito devono essere inizializzate durante la dichiarazione; altrimenti, il compilatore C# genererà un errore: il variabile di tipo implicito deve essere inizializzato.
var i; // errore durante la compilazione: il variabile di tipo implicito deve essere inizializzata i = 100;
var non può essere utilizzato per dichiarare più volte una variabile in una singola istruzione.
var i = 100, j = 200, k = 300; // errore: non è possibile dichiarare variabili var in una singola istruzione//i = 100; anche il seguente contenuto è valido var j = 200; var k = 300;
var non può essere utilizzato come parametro di funzione.
void Display(var param) // errore durante la compilazione { Console.Write(param); }
var può essere utilizzato sia nei cicli for che foreach.
for(var i = 0; i < 10; i++) { Console.WriteLine(i); }
var può essere utilizzato insieme alle query LINQ.
// Collezione di stringhe IList<string> stringList = new List<string>() { "Tutorial C#", "Tutorial VB.NET", "Impara C++", "Tutorial MVC", "Java" }; // Sintassi di query LINQ var result = from s in stringList where s.Contains("Tutorials") select s;