English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En C#, las variables deben declararse con un tipo de datos. Estas se denominan variables de tipo explícito.
int i = 100;// Variable explícita
C#3.0 introdujo la palabra clave var para declarar variables de nivel de método sin especificar explícitamente el tipo de datos.
var j = 100; // Variable local de tipo implícito
El compilador infiere el tipo de la variable desde la expresión a la derecha del operador =. En el ejemplo anterior, var se compila como int.
A continuación, se infiere el tipo desde la expresión.
int i = 10; var j = i + 1; // compilado como int
var se puede usar para declarar cualquier tipo de datos integrado, tipo de usuario definido o tipo de variable anónima. A continuación, se muestra un ejemplo de cómo el compilador de C# infiere el tipo basado en este valor:
static void Main(string[] args) { var i = 10; Console.WriteLine("El tipo de i es {0}", i.GetType()); var str = "Hello World!!"; Console.WriteLine("El tipo de str es {0}", str.GetType()); var dbl = 100.50d; Console.WriteLine("El tipo de dbl es {0}", dbl.GetType()); var isValid = true; Console.WriteLine("El tipo de isValid es {0}", isValid.GetType()); var ano = new { name = "Steve" }; Console.WriteLine("El tipo de ano es {0}", ano.GetType()); var arr = new[] { 1, 10, 20, 30 }; Console.WriteLine("El tipo de arr es {0}", arr.GetType()); var file = new FileInfo("MyFile"); Console.WriteLine("El tipo de archivo es {0}", file.GetType()); }
Las variables de tipo implícito deben inicializarse en el momento de la declaración; de lo contrario, el compilador de C# dará el error: debe inicializarse la variable de tipo implícito.
var i; // error en tiempo de compilación: debe inicializarse la variable de tipo implícito i = 100;
var no permite la declaración múltiple de variables en una sola instrucción.
var i = 100, j = 200, k = 300; // error: no se puede declarar una variable var en una sola instrucción//El siguiente contenido también es válido var i = 100; var j = 200; var k = 300;
var no se puede usar como parámetro de función.
void Display(var param) //error en tiempo de compilación { Console.Write(param); }
var se puede usar en bucles for y foreach.
for(var i = 0; i < 10; i++) { Console.WriteLine(i); }
var también se puede usar con consultas LINQ.
// Conjunto de cadenas IList<string> stringList = new List<string>() { "Tutoriales C#", "Tutoriales VB.NET", "Aprender C"++", "Tutoriales MVC", "Java" }; // Sintaxis de consulta LINQ var result = from s in stringList where s.Contains("Tutoriales") select s;