English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
No C#, as variáveis devem ser declaradas com tipos de dados. Essas são chamadas de variáveis de tipo explícito.
int i = 100;// Variável explícita
C#3.0 introduziu a palavra-chave var para declarar variáveis de nível de método sem especificar explicitamente o tipo de dados.
var j = 100; // Variável local de tipo implícito
O compilador deduzirá o tipo da expressão à direita do operador =. No exemplo acima, var será compilado como int.
A seguir, o tipo é deduzido da expressão.
int i = 10; var j = i + 1; // compilado como int
var pode ser usado para declarar qualquer tipo de dados integrado, tipo de dados definido pelo usuário ou variável de tipo anônimo. O exemplo a seguir mostra como o compilador C# deduz o tipo com base neste valor:
static void Main(string[] args) { var i = 10; Console.WriteLine("Tipo do i é {0}", i.GetType()); var str = "Hello World!!"; Console.WriteLine("Tipo do str é {0}", str.GetType()); var dbl = 100.50d; Console.WriteLine("Tipo do dbl é {0}", dbl.GetType()); var isValid = true; Console.WriteLine("Tipo do isValid é {0}", isValid.GetType()); var ano = new { name = "Steve" }; Console.WriteLine("Tipo do ano é {0}", ano.GetType()); var arr = new[] { 1, 10, 20, 30 }; Console.WriteLine("Tipo do arr é {0}", arr.GetType()); var file = new FileInfo("MyFile"); Console.WriteLine("Tipo do arquivo é {0}", file.GetType()); }
As variáveis de tipo implícito devem ser inicializadas no momento da declaração; caso contrário, o compilador C# emitirá o erro: a variável de tipo implícito deve ser inicializada.
var i; // erro de compilação: a variável de tipo implícito deve ser inicializada i = 100;
Não é permitido declarar várias vezes uma variável em uma única instrução.
var i = 100, j = 200, k = 300; // erro: não é possível declarar variável var em uma única instrução//O seguinte conteúdo também é válido var i = 100; var j = 200; var k = 300;
var não pode ser usado como parâmetro de função.
void Display(var param) //erro de compilação { Console.Write(param); }
var pode ser usado em loops for e foreach.
for(var i = 0; i < 10; i++) { Console.WriteLine(i); }
var também pode ser usado com consultas LINQ.
// Conjunto de Strings IList<string> stringList = new List<string>() { "Tutoriais C#", "Tutoriais VB.NET", "Aprenda C"++", "Tutoriais MVC", "Java" }; // Sintaxe de Consulta LINQ var result = from s in stringList where s.Contains("Tutorials") select s;