VAR
强类型的隐式类型局部变量,就像用户声明了类型一样。与其他变量声明不同,编译器根据分配给它的值确定它所代表的变量的类型。
var i = 10; // implicitly typed, the compiler must determine what type of variable this is
int i = 10; // explicitly typed, the type of variable is explicitly stated to the compiler
// Note that these both represent the same type of variable (int) with the same value (10).
与其他类型的变量不同,具有此关键字的变量定义需要在声明时初始化。这是由于 var 关键字表示隐式类型变量。
var i;
i = 10;
// This code will not run as it is not initialized upon declaration.
该变种的关键字,也可用于动态创建新的数据类型。这些新数据类型称为匿名类型。它们非常有用,因为它们允许用户定义一组属性,而不必首先显式声明任何类型的对象类型。
简单的匿名类型
var a = new { number = 1, text = "hi" };
返回匿名类型的 LINQ 查询
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
}
public class DogWithBreed
{
public Dog Dog { get; set; }
public string BreedName { get; set; }
}
public void GetDogsWithBreedNames()
{
var db = new DogDataContext(ConnectString);
var result = from d in db.Dogs
join b in db.Breeds on d.BreedId equals b.BreedId
select new
{
DogName = d.Name,
BreedName = b.BreedName
};
DoStuff(result);
}
你可以在 foreach 语句中使用 var 关键字
public bool hasItemInList(List<String> list, string stringToSearch)
{
foreach(var item in list)
{
if( ( (string)item ).equals(stringToSearch) )
return true;
}
return false;
}