C#3.0新特性――隐含类型局部变量和匿名类型

  C#3.0引进新关键字var,它是一个类型,可以用来声明局部变量。

 

Code
var I = 1; //int类型
var j = ”reallypride”; //string类型
var k = new[] { 1, 2, 3, 4 }; //int[]类型
var x; //错误,必须初始化
var y = null; //错误,不可以为空

使用var变量要点:
1.         使用var声明局部变量,编译器会根据后面的初始化表达式自动推断变量的类型,这个类型是强类型。
2.         var变量在声明时必须初始化,不可以为空,且编译时可以推断其类型。初始化后变量只能保存这种类型。
3.         数组也可以作为var类型。
匿名类型
匿名类型允许定义行内类型,不须显示声明类型。常和var一起使用。如

 

Code
var p1 = new { name = ”reallypride”, age = 23 };
var p2
= new { name = “jingxuan”, age = 23 };

编译器会自动定义一个包含nameage属性的类。p1p2结构相同,是同一个类的实例。我们再定义一个变量:

Code
var p3 = new { age = 23, name = “reallypride” };

编译器会新建一个新的类,也就是p3p1,p2不是同一个类的实例,因为p3声明属性的位置不相同。
{ }是匿名初始化器。
如果要定义数组,可以这样定义:

 

Code
var intArray = new[] { 1, 2, 3, 4 };
var strArray
= new[] { “a”, “b”, “c” };
var someTypeArray
= new[] { new { name = “reallypride”, age = 23 }, new { name = “jingxuan”, age = 23 } };

匿名类型要点:
1. 可以使用new关键字调用匿名初始化器创建一个匿名类型。
2. 匿名类型直接继承自System.Object
3. 匿名类型的属性是编译器根据初始化器自动推断。

或许有人会觉得,有了var这个关键字后,其它的类型关键字都变成多余的了。
其实var是简化了我们的编程,让我们不用再因为定义一个变量而需要写两次它的类型。
如定义一个User类的实例,以前的方法我们要这样定义:

 

Code
User user=new User();

而现在我们可以这样定义:

 

Code
var user=new User();

我们可以把更多的时间用在软件功能的实现上而不是敲代码上。

 

转载于:https://www.cnblogs.com/reallypride/archive/2008/09/08/1286514.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值