4.1.4 类型推断
从C#3.0开始,C#引入了一个新的关键字var,它表示一种隐式类型推断,编译器可以通过它的初始值来判断变量的具体类型。尤其需要注意的是,var只能用于局部变量的声明,不能用于字段级变量的声明,并且使用var声明的变量必须有初始值,这样编译器才有判断其是否是真实变量的依据。
如代码清单4-3所示,如下两种功能是一样的。
代码清单4-3 使用var关键字
var i=10;//隐式类型
int i=10;//显式类型
我们将代码清单4-2使用var关键字进行改写,如代码清单4-4所示。
代码清单4-4 使用var关键字改写代码清单4-2的
using System;
namespace ProgrammingCSharp4CSharp4
{
class Person
{
private int Age;
public void SayHello()
{
var message="My age is{0}";
Console.WriteLine(message,Age);
}
static void Main(string[]args)
{
var person=new Person();
person.SayHello();
}
}
}
message变量的初始值为一个字符串类型,因此编译器可以推断其类型为string类型;person变量的初始值为Person类型,同理编译器可以断定person变量为Person类型。