1.隐型局部变量
C# 3.0引入了一个叫做“var”的新关键字。这个关键字允许开发者建立一个变量,但不必明确它的类型。例如,用var说明一个字符串,就像这样:
varmyData = "This is my data";
注意,这里并没有提到myData变量是一个字符串,而C# 2.0却要求这一点。
虽然var允许您建立隐含的类型,它并没有降低C#浓厚的类型特征。var关键字只有在建立变量时有用,一旦您建立变量并且确定它的类型以后,就不能再用var来改变一个变量的类型。
例如,这段代码没有作用:
varmyDate = DateTime.Now;
myDate = "Hello.";
使用var关键字还会产生一个有趣的结果,它可以帮助开发者减少建立变量时的代码输入。例如,在C# 2.0中建立一个Customer对象,需要输入以下代码:
Customer myCustomer = new Customer();
使用新的var关键字,则只要输入:
varmyCustomer = new Customer();
var关键字的另一个特点在于,使用它可以避免改变一个返回某个类型对象的方法调用。例如,在C# 2.0中,如果您需要调用一个返回Customer对象的方法,您应该编写以下代码:
Customer myCustomer = GetByName("Zach");
如果某个时候GetByName方法返回一个不是Customer的对象,这段代码就无法编译。但是,如果应用var关键字,您就不用担心GetByName返回的对象类型。
varmyData = GetByName("Zach");
现在,因为应用了var关键字,GetByName方法能够进行改变,返回一个Person对象,这个方法调用也依然有效。
C# 3.0引入了一个叫做“var”的新关键字。这个关键字允许开发者建立一个变量,但不必明确它的类型。例如,用var说明一个字符串,就像这样:
varmyData = "This is my data";
注意,这里并没有提到myData变量是一个字符串,而C# 2.0却要求这一点。
虽然var允许您建立隐含的类型,它并没有降低C#浓厚的类型特征。var关键字只有在建立变量时有用,一旦您建立变量并且确定它的类型以后,就不能再用var来改变一个变量的类型。
例如,这段代码没有作用:
varmyDate = DateTime.Now;
myDate = "Hello.";
使用var关键字还会产生一个有趣的结果,它可以帮助开发者减少建立变量时的代码输入。例如,在C# 2.0中建立一个Customer对象,需要输入以下代码:
Customer myCustomer = new Customer();
使用新的var关键字,则只要输入:
varmyCustomer = new Customer();
var关键字的另一个特点在于,使用它可以避免改变一个返回某个类型对象的方法调用。例如,在C# 2.0中,如果您需要调用一个返回Customer对象的方法,您应该编写以下代码:
Customer myCustomer = GetByName("Zach");
如果某个时候GetByName方法返回一个不是Customer的对象,这段代码就无法编译。但是,如果应用var关键字,您就不用担心GetByName返回的对象类型。
varmyData = GetByName("Zach");
现在,因为应用了var关键字,GetByName方法能够进行改变,返回一个Person对象,这个方法调用也依然有效。