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类型。