声明变量的语法有些变化:使用var关键字代替实际的类型。
编译器可以根据变量的初始化值 “推断” 出变量的类型。
例如:
var score = 0;
编译器会将它变成
int score = 0;
即使 score 从来没有声明 int, 编译器也可以确定。编译后上面的2个语句是等价的。
给出一个小例子,大家测试一下哈:
static void Main()
{
var name = "Hui Yang";
var age = 29;
var isPlay = true;
Type nameType = name.GetType();
Type ageType = age.GetType();
Type isPlayType = isPlay.GetType();
Console.WriteLine("name is type = " + nameType);
Console.WriteLine("age is type = " + ageType);
Console.WriteLine("isPlay is type = " + isPlayType );
}
// 程序输出:
// name is type = System.String
// age is type = System.Int32
// isPlay is type = System.Bool
需要遵循一些规则:
- 变量必须初始化。 否则,编译器就没有推断变量类型的依据。
- 初始化器不能为空。
- 初始化器必须放在表达式中。
- 不能把初始化器设置为一个对象,除非在初始化器中创建一个新对象。
声明了变量,推断出了类型后, 就不能改变变量的类型了。