English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В C# переменные должны быть объявлены с использованием типа данных. Эти переменные называются переменными с явным типом.
int i = 100; // переменная с явным типом
C# 3.0 ввел ключевое слово var для объявления переменных уровня метода, не требуя указания типа данных явно.
var j = 100; // переменная с неявным типом локального уровня
Компилятор определяет тип переменной var по выражению справа от знака = в операторе. В данном примере var будет компилироваться как int.
Ниже приведены примеры определения типов из выражений.
int i = 10; var j = i + 1; // компилируется как int
var может использоваться для объявления любых встроенных типов данных, пользовательских типов или анонимных типов переменных. Ниже приведен пример, где компилятор C# определяет тип по значению:
static void Main(string[] args) { var i = 10; Console.WriteLine("Тип i: {0}", i.GetType()); var str = "Hello World!!"; Console.WriteLine("Тип str: {0}", str.GetType()); var dbl = 100.50d; Console.WriteLine("Тип dbl: {0}", dbl.GetType()); var isValid = true; Console.WriteLine("Тип isValid: {0}", isValid.GetType()); var ano = new { name = "Steve" }; Console.WriteLine("Тип ano: {0}", ano.GetType()); var arr = new[] { 1, 10, 20, 30 }; Console.WriteLine("Тип arr: {0}", arr.GetType()); var file = new FileInfo("MyFile"); Console.WriteLine("Тип файла: {0}", file.GetType()); }
Переменные с неявным типом должны быть инициализированы при их объявлении; в противном случае компилятор C# выдаст ошибку: переменная с неявным типом должна быть инициализирована.
var i; // ошибка в компиляции: переменная с неявным типом должна быть инициализирована i = 100;
var не позволяет объявлять несколько переменных в одном выражении.
var i = 100, j = 200, k = 300; // ошибка: невозможно объявить несколько переменных var в одном выражении // также верно var i = 100; var j = 200; var k = 300;
var не может использоваться в качестве аргумента функции.
void Display(var param) // ошибка в компиляции { Console.Write(param); }
var может использоваться в циклах for и foreach.
for(var i = 0; i < 10; i++) { Console.WriteLine(i); }
var также может использоваться вместе с LINQ запросами.
// Набор строк IList<string> stringList = new List<string>() { "C# Tutorials", "VB.NET Tutorials", "Learn C++", "MVC Tutorials", "Java" }; // Синтаксис LINQ var result = from s in stringList where s.Contains("Tutorials") select s;