Var官方说明:
从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型 var。 隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型。 下面的两个 i 声明在功能上是等效的:
var i = 10; // 隐式类型 int i = 10; // 明确类型
下面的示例演示了两个查询表达式。 在第一个表达式中,允许但不需要使用 var,因为可以将查询结果的类型显式声明为 IEnumerable<string>。但是,在第二个表达式中必须使用 var,因为结果是一个匿名类型集合,而该类型的名称只有编译器本身可以访问。 请注意,在第二个示例中,foreach 迭代变量 item 也必须转换为隐式类型。
string[] words = { "apple", "strawberry", "grape", "peach", "banana" }; var wordQuery = from word in words where word[0] == 'g' select word;
foreach (string s in wordQuery) { Console.WriteLine(s); }
var custQuery = from cust in customers where cust.City == "Phoenix" select new { cust.Name, cust.Phone };
foreach (var item in custQuery) { Console.WriteLine("Name={0}, Phone={1}", item.Name, item.Phone); }总结:
说白了var可以是任何类型,可以代表任何东西,就这点好。