English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Variable implícita (var) de C#

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;